Support Migration Notice: To update migrated JIRA cases click here to open a new case use www.vmware.com/go/sr | vFabric Hyperic 5.7.0 is Now Available

Hyperic HQ

ui calls have too much overhead grabbing jdbc connections

Details

  • Type: Bug Bug
  • Status: Closed Closed
  • Priority: Major Major
  • Resolution: Deferred
  • Affects Version/s: 4.2.0, 4.3, 4.4, 4.5
  • Fix Version/s: None
  • Component/s: None
  • Case Links:
    none
  • Regression:
    No
  • Tags:

Description

Here is a sample of all the counts of methods calling getConnection() in different areas of our app by just browsing around a couple pages in the ui after startup (I filtered some of the bigger ones which aren't associated with the UI)

This is caused by objects outside the spring container calling @Transactional beans inside the spring container. getConnection() is just a part of the entire overhead as each of these calls have a lot of hidden calls due to aop.

If we could bundle up the calls so that everything occurs inside the spring container, we'd be much better off from a performance perspective.

123 org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:164)
18 org.hyperic.hq.ui.server.session.UIPluginDeployer$1.fileAdded(UIPluginDeployer.java:79)
15 org.hyperic.hq.ui.servlet.AvailabilityBaseServlet.doGet(AvailabilityBaseServlet.java:114)
15 <unknown>
10 org.quartz.impl.jdbcjobstore.AttributeRestoringConnectionInvocationHandler.setAutoCommit(AttributeRestoringConnectionInvocationHandler.java:83)
9 org.hyperic.hq.events.server.session.HQDBHealthChecker$HQDBHealthTask.run(HQDBHealthChecker.java:111)
7 org.hyperic.hq.ui.taglib.HelpTag.doStartTag(HelpTag.java:66)
5 org.hyperic.hq.ui.taglib.RecentAlertsTag.doStartTag(RecentAlertsTag.java:141)
5 org.hyperic.hq.ui.taglib.RecentAlertsTag.doStartTag(RecentAlertsTag.java:131)
4 org.hyperic.hq.ui.action.resource.common.monitor.visibility.IndicatorChartsAction.getMetrics(IndicatorChartsAction.java:154)
4 org.hyperic.hq.ui.action.resource.common.monitor.visibility.IndicatorChartsAction.getMetrics(IndicatorChartsAction.java:138)
4 org.hyperic.hq.ui.action.portlet.recentresources.ViewAction.getStuff(ViewAction.java:110)
4 org.hyperic.hq.ui.action.common.HeaderAction.execute(HeaderAction.java:66)
4 org.hyperic.hq.events.server.session.AlertRegulatorImpl.alertsAllowed(AlertRegulatorImpl.java:49)
2 org.hyperic.hq.ui.util.DashboardUtils.findUserDashboardConfig(DashboardUtils.java:365)
2 org.hyperic.hq.ui.taglib.UserResourcePermission.doStartTag(UserResourcePermission.java:72)
2 org.hyperic.hq.ui.taglib.ResourceBreadcrumbTag.processBreadcrumb(ResourceBreadcrumbTag.java:158)
2 org.hyperic.hq.ui.taglib.NavMapTag._getResourceTree(NavMapTag.java:291)
2 org.hyperic.hq.ui.service.RESTService.loadDashboardConfig(RESTService.java:773)
2 org.hyperic.hq.ui.service.RESTService.getAuthzSubject(RESTService.java:756)
2 org.hyperic.hq.ui.action.resource.service.monitor.VisibilityPortalAction.findServersHealths(VisibilityPortalAction.java:130)
2 org.hyperic.hq.ui.action.resource.service.monitor.VisibilityPortalAction.findServersHealths(VisibilityPortalAction.java:129)
2 org.hyperic.hq.ui.action.resource.service.monitor.VisibilityPortalAction.findServersHealths(VisibilityPortalAction.java:124)
2 org.hyperic.hq.ui.action.resource.ResourceController.setResource(ResourceController.java:157)
2 org.hyperic.hq.ui.action.resource.ResourceController.setResource(ResourceController.java:145)
2 org.hyperic.hq.ui.action.resource.ResourceController.setResource(ResourceController.java:129)
2 org.hyperic.hq.ui.action.resource.ResourceController.setResource(ResourceController.java:126)
2 org.hyperic.hq.ui.action.resource.ResourceController.setResource(ResourceController.java:123)
2 org.hyperic.hq.ui.action.resource.common.QuickFavoritesPrepareAction.workflow(QuickFavoritesPrepareAction.java:83)
2 org.hyperic.hq.ui.action.resource.common.monitor.visibility.TimelineAction.execute(TimelineAction.java:88)
2 org.hyperic.hq.ui.action.resource.common.monitor.visibility.ListVirtualsAction.execute(ListVirtualsAction.java:81)
2 org.hyperic.hq.ui.action.resource.common.monitor.visibility.InventoryHelper.isResourceConfigured(InventoryHelper.java:259)
2 org.hyperic.hq.ui.action.resource.common.monitor.visibility.InventoryHelper.isResourceConfigured(InventoryHelper.java:246)
2 org.hyperic.hq.ui.action.resource.common.monitor.visibility.CurrentHealthAction.execute(CurrentHealthAction.java:120)
2 org.hyperic.hq.ui.action.resource.common.monitor.visibility.CurrentHealthAction.execute(CurrentHealthAction.java:113)
2 org.hyperic.hq.ui.action.portlet.addcontent.ViewAction.execute(ViewAction.java:79)
2 com.hyperic.hq.ui.util.UIUtilsImpl.setResourceFlags(UIUtilsImpl.java:96)
2 com.hyperic.hq.ui.action.resource.common.monitor.visibility.ProblemMetricsDisplayAction.execute(ProblemMetricsDisplayAction.java:142)
1 org.quartz.impl.StdSchedulerFactory.instantiate(StdSchedulerFactory.java:1236)
1 org.hyperic.util.jdbc.DBUtil.getDBType(DBUtil.java:222)
1 org.hyperic.hq.ui.security.UISessionInitializationStrategy.loadDashboard(UISessionInitializationStrategy.java:121)
1 org.hyperic.hq.ui.security.UISessionInitializationStrategy.loadDashboard(UISessionInitializationStrategy.java:118)
1 org.hyperic.hq.ui.security.BaseSessionInitializationStrategy.onAuthentication(BaseSessionInitializationStrategy.java:75)
1 org.hyperic.hq.ui.security.BaseSessionInitializationStrategy.onAuthentication(BaseSessionInitializationStrategy.java:100)
1 org.hyperic.hq.ui.security.BaseSessionInitializationStrategy.loadUserPermissions(BaseSessionInitializationStrategy.java:145)
1 org.hyperic.hq.ui.security.BaseSessionInitializationStrategy.getUserPreferences(BaseSessionInitializationStrategy.java:160)
1 org.hyperic.hq.ui.login.LoginController.login(LoginController.java:60)
1 org.hyperic.hq.ui.action.resource.hub.ResourceHubPortalAction.execute(ResourceHubPortalAction.java:409)
1 org.hyperic.hq.ui.action.resource.hub.ResourceHubPortalAction.execute(ResourceHubPortalAction.java:378)
1 org.hyperic.hq.ui.action.resource.hub.ResourceHubPortalAction.execute(ResourceHubPortalAction.java:327)
1 org.hyperic.hq.ui.action.resource.hub.ResourceHubPortalAction.execute(ResourceHubPortalAction.java:303)
1 org.hyperic.hq.ui.action.resource.hub.ResourceHubPortalAction.execute(ResourceHubPortalAction.java:279)
1 org.hyperic.hq.ui.action.resource.common.monitor.visibility.IndicatorChartsAction.getViewMetrics(IndicatorChartsAction.java:383)
1 org.hyperic.hq.ui.action.portlet.search.ViewAction.execute(ViewAction.java:62)
1 org.hyperic.hq.ui.action.portlet.savedqueries.ViewAction.execute(ViewAction.java:87)
1 org.hyperic.hq.ui.action.portlet.resourcehealth.ViewAction.execute(ViewAction.java:89)
1 org.hyperic.hq.ui.action.portlet.resourcehealth.ViewAction.execute(ViewAction.java:114)
1 org.hyperic.hq.ui.action.portlet.resourcehealth.ViewAction.execute(ViewAction.java:107)
1 org.hyperic.hq.ui.action.portlet.recentlyApproved.ViewAction.execute(ViewAction.java:91)
1 org.hyperic.hq.ui.action.portlet.recentlyApproved.ViewAction.execute(ViewAction.java:81)
1 org.hyperic.hq.ui.action.portlet.DisplayDashboardAction.execute(DisplayDashboardAction.java:95)
1 org.hyperic.hq.ui.action.portlet.DisplayDashboardAction.execute(DisplayDashboardAction.java:231)
1 org.hyperic.hq.ui.action.portlet.DisplayDashboardAction.execute(DisplayDashboardAction.java:165)
1 org.hyperic.hq.ui.action.portlet.DisplayDashboardAction.execute(DisplayDashboardAction.java:103)
1 org.hyperic.hq.ui.action.portlet.criticalalerts.ViewAction.execute(ViewAction.java:92)
1 org.hyperic.hq.ui.action.portlet.criticalalerts.ViewAction.execute(ViewAction.java:143)
1 org.hyperic.hq.ui.action.portlet.criticalalerts.ViewAction.execute(ViewAction.java:135)
1 org.hyperic.hq.ui.action.portlet.controlactions.ViewAction.execute(ViewAction.java:88)
1 org.hyperic.hq.ui.action.portlet.controlactions.ViewAction.execute(ViewAction.java:141)
1 org.hyperic.hq.ui.action.portlet.controlactions.ViewAction.execute(ViewAction.java:115)
1 org.hyperic.hq.ui.action.portlet.controlactions.ViewAction.execute(ViewAction.java:109)
1 org.hyperic.hq.ui.action.portlet.availsummary.ViewAction.execute(ViewAction.java:99)
1 org.hyperic.hq.ui.action.portlet.availsummary.ViewAction.execute(ViewAction.java:162)
1 org.hyperic.hq.ui.action.portlet.autoDisc.ViewAction.execute(ViewAction.java:97)
1 org.hyperic.hq.ui.action.portlet.autoDisc.ViewAction.execute(ViewAction.java:91)
1 org.hyperic.hq.ui.action.portlet.autoDisc.ViewAction.execute(ViewAction.java:104)
1 org.hyperic.hq.security.JdbcHQAuthenticationProvider.authenticate(JdbcHQAuthenticationProvider.java:53)
1 org.hyperic.hq.security.InternalAuthenticationProvider.authenticate(InternalAuthenticationProvider.java:54)
1 org.hyperic.hq.security.InternalAuthenticationProvider.authenticate(InternalAuthenticationProvider.java:45)
1 org.hyperic.hq.product.server.session.ProductManagerImpl.preload(ProductManagerImpl.java:238)
1 org.hyperic.hq.measurement.server.session.ReportStatsCollector.initialize(ReportStatsCollector.java:88)
1 org.hyperic.hq.measurement.server.session.MeasurementSystemInitializer.prefetchEnabledMeasurementsAndTemplates(MeasurementSystemInitializer.java:122)
1 org.hyperic.hq.measurement.server.session.MeasurementSystemInitializer.init(MeasurementSystemInitializer.java:72)
1 org.hyperic.hq.measurement.server.session.DataCompressImpl$CommonRoutines.runRoutines(DataCompressImpl.java:164)
1 org.hyperic.hq.ha.server.session.HAStarter.startHAService(HAStarter.java:26)
1 org.hyperic.hq.ha.server.session.HAServiceImpl$1.run(HAServiceImpl.java:62)
1 org.hyperic.hq.events.server.session.RegisteredTriggerManagerImpl.cleanupRegisteredTriggers(RegisteredTriggerManagerImpl.java:120)
1 org.hyperic.hq.escalation.server.session.EscalationRuntimeInitializer.startEscalationManager(EscalationRuntimeInitializer.java:45)
1 org.hyperic.hq.dao.PrincipalDAO.findByUsername(PrincipalDAO.java:57)
1 [org.hyperic.hq.ConnectionIdentifier@40]
1 org.hyperic.hq.common.server.session.Crispo.toResponse(Crispo.java:94)
1 org.hyperic.hq.common.server.session.Crispo$$EnhancerByCGLIB$$bdac6e77.toResponse(<generated>)
1 org.hyperic.hq.bizapp.server.session.ResourceCleanupEventListener.processEvents(ResourceCleanupEventListener.java:48)
1 org.hyperic.hq.bizapp.server.session.ResourceCleanupEventListenerInitializer.init(ResourceCleanupEventListenerInitializer.java:20)
1 org.hyperic.hq.autoinventory.server.session.AutoinventoryManagerImpl.createDependentManagers(AutoinventoryManagerImpl.java:867)
1 org.hyperic.hq.autoinventory.server.session.AgentAIScanServiceImpl.notifyAgents(AgentAIScanServiceImpl.java:53)
1 org.hyperic.hq.authz.server.session.AuthzSubject$$EnhancerByCGLIB$$6d12ca3a.getName(<generated>)
1 org.hyperic.hq.auth.server.session.UserAuditFactory.loginAudit(UserAuditFactory.java:41)
1 org.hyperic.hibernate.id.HQMultipleHiLoPerTableGenerator.executeInNewTransaction(HQMultipleHiLoPerTableGenerator.java:213)
1 com.hyperic.hq.ui.action.portlet.problemresources.ViewAction.execute(ViewAction.java:94)
1 com.hyperic.hq.ui.action.portlet.problemresources.ViewAction.execute(ViewAction.java:63)
1 com.hyperic.hq.rt.server.session.ResponseTimeManagerImpl.afterPropertiesSet(ResponseTimeManagerImpl.java:246)
1 com.hyperic.hq.measurement.server.session.MeasurementInserterManager.setupInserter(MeasurementInserterManager.java:61)

Activity

Hide
Idan Hod added a comment -

As part of our continuous effort to improve product quality, The Hyperic product team has decided to implement a "zero bug policy" methodology.

Following this methodology, only defects that are planned to be handled in the near future will remain open. Any other defect will be deferred, with the option to be reevaluated if the need arises, or if changes to the Hyperic road-map make such defect a candidate for a fix.

We believe this new process will help create clarity and focus in the Hyperic road-map and ultimately benefit our customer base.

This bug has been deferred as part of the new policy.

We appreciate your cooperation and continues contribution to the improvement of Hyperic.

Show
Idan Hod added a comment - As part of our continuous effort to improve product quality, The Hyperic product team has decided to implement a "zero bug policy" methodology. Following this methodology, only defects that are planned to be handled in the near future will remain open. Any other defect will be deferred, with the option to be reevaluated if the need arises, or if changes to the Hyperic road-map make such defect a candidate for a fix. We believe this new process will help create clarity and focus in the Hyperic road-map and ultimately benefit our customer base. This bug has been deferred as part of the new policy. We appreciate your cooperation and continues contribution to the improvement of Hyperic.

People

Vote (0)
Watch (0)

Dates

  • Created:
    Updated:
    Resolved:
    Last comment:
    41 weeks ago