[jboss-jira] [JBoss JIRA] Commented: (JBPORTAL-1211) portal load test: optimize use of Interceptors and DB query
Julien Viet (JIRA)
jira-events at jboss.com
Mon Jan 22 12:08:01 EST 2007
[ http://jira.jboss.com/jira/browse/JBPORTAL-1211?page=comments#action_12351359 ]
Julien Viet commented on JBPORTAL-1211:
---------------------------------------
I will first work on optmizing user loading in user interceptor because it seems to me that the large query is only done only if the cache is empty. I will do that optmization on the trunk (which pass all unit test cases). We will test with that and then see if the issue happen again.
> portal load test: optimize use of Interceptors and DB query
> -----------------------------------------------------------
>
> Key: JBPORTAL-1211
> URL: http://jira.jboss.com/jira/browse/JBPORTAL-1211
> Project: JBoss Portal
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Components: Portal Core
> Affects Versions: 2.4.1 SP1
> Reporter: Prabhat Jha
> Assigned To: Julien Viet
>
> During portal load test, we found some bottlenecks related to call to DB. At 500 simultaneous user thread, we start seeing org.jboss.util.NestedSQLException: No ManagedConnections available within configured blocking timeout with min pool size of 20 and max pool size of 40. I am not sure but the following query which does join of 6 tables probably also needs to be optimized
> select portalobje0_.PK as PK20_0_, portalobje0_.LISTENER as LISTENER20_0_, portalobje0_4_.INSTANCE_REF as INSTANCE2_27_0_, case when portalobje0_1_.PK is not null then 1 when portalobje0_2_.PK is not null then 2 when portalobje0_3_.PK is not null then 3 when portalobje0_4_.PK is not null then 4 when portalobje0_.PK is not null then 0 end as clazz_0_, declaredpr1_.OBJECT_KEY as OBJECT1_2_, declaredpr1_.jbp_VALUE as jbp2_2_, declaredpr1_.NAME as NAME2_, modes2_.PK as PK3_, modes2_.name as name3_, windowstat3_.PK as PK4_, windowstat3_.name as name4_ from JBP_PORTAL_OBJECT portalobje0_ left outer join JBP_CONTEXT portalobje0_1_ on portalobje0_.PK=portalobje0_1_.PK left outer join JBP_PORTAL portalobje0_2_ on portalobje0_.PK=portalobje0_2_.PK left outer join JBP_PAGE portalobje0_3_ on portalobje0_.PK=portalobje0_3_.PK left outer join JBP_WINDOW portalobje0_4_ on portalobje0_.PK=portalobje0_4_.PK left outer join JBP_PORTAL_OBJECT_PROPS declaredpr1_ on portalobje0_.PK=declaredpr1_.OBJECT_KEY left outer join JBP_PORTAL_MODE modes2_ on portalobje0_.PK=modes2_.PK left outer join JBP_PORTAL_WINDOW_STATE windowstat3_ on portalobje0_.PK=windowstat3_.PK where portalobje0_.PK=?
> Complete Stack trace;
> org.jboss.util.NestedSQLException: No ManagedConnections available within configured blocking timeout ( 30000 [ms] ); - nested throwable: (javax.resource.Re\
> sourceException: No ManagedConnections available within configured blocking timeout ( 30000 [ms] ))
> at org.jboss.resource.adapter.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:94)
> at org.hibernate.connection.DatasourceConnectionProvider.getConnection(DatasourceConnectionProvider.java:69)
> at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:417)
> at org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:144)
> at org.hibernate.jdbc.AbstractBatcher.prepareQueryStatement(AbstractBatcher.java:139)
> at org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1561)
> at org.hibernate.loader.Loader.doQuery(Loader.java:661)
> at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:224)
> at org.hibernate.loader.Loader.loadEntity(Loader.java:1785)
> at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:48)
> at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:42)
> at org.hibernate.persister.entity.AbstractEntityPersister.load(AbstractEntityPersister.java:2821)
> at org.hibernate.event.def.DefaultLoadEventListener.loadFromDatasource(DefaultLoadEventListener.java:370)
> at org.hibernate.event.def.DefaultLoadEventListener.doLoad(DefaultLoadEventListener.java:351)
> at org.hibernate.event.def.DefaultLoadEventListener.load(DefaultLoadEventListener.java:122)
> at org.hibernate.event.def.DefaultLoadEventListener.proxyOrLoad(DefaultLoadEventListener.java:178)
> at org.hibernate.event.def.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:86)
> at org.hibernate.impl.SessionImpl.fireLoad(SessionImpl.java:871)
> at org.hibernate.impl.SessionImpl.get(SessionImpl.java:808)
> at org.hibernate.impl.SessionImpl.get(SessionImpl.java:801)
> at org.jboss.portal.core.impl.model.portal.PersistentPortalObjectContainer.lookup(PersistentPortalObjectContainer.java:475)
> at org.jboss.portal.core.impl.model.portal.PersistentPortalObjectContainer.getObject(PersistentPortalObjectContainer.java:242)
> at org.jboss.portal.core.impl.model.portal.PersistentPortalObjectContainer.getContext(PersistentPortalObjectContainer.java:255)
> at sun.reflect.GeneratedMethodAccessor262.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:324)
> at org.jboss.mx.interceptor.AttributeDispatcher.invoke(AttributeDispatcher.java:99)
> at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
> at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
> at org.jboss.mx.interceptor.ModelMBeanAttributeInterceptor.invoke(ModelMBeanAttributeInterceptor.java:197)
> at org.jboss.mx.interceptor.PersistenceInterceptor.invoke(PersistenceInterceptor.java:76)
> at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
> at org.jboss.mx.server.AbstractMBeanInvoker.getAttribute(AbstractMBeanInvoker.java:362)
> at org.jboss.mx.server.MBeanServerImpl.getAttribute(MBeanServerImpl.java:556)
> at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:140)
> at $Proxy55.getContext(Unknown Source)
> at org.jboss.portal.core.model.portal.PortalObjectCommandFactory$1.getRoot(PortalObjectCommandFactory.java:73)
> at org.jboss.portal.server.servlet.PathParser.map(PathParser.java:46)
> at org.jboss.portal.core.model.portal.PortalObjectCommandFactory.doMapping(PortalObjectCommandFactory.java:109)
> at sun.reflect.GeneratedMethodAccessor263.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:324)
> at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
> at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
> at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:133)
> at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
> at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:142)
> at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
> at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
> at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
> at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
> at $Proxy57.doMapping(Unknown Source)
> at org.jboss.portal.core.command.mapper.CommandFactoryDelegate.doMapping(CommandFactoryDelegate.java:86)
> at org.jboss.portal.core.command.mapper.DelegatingCommandFactoryService.doMapping(DelegatingCommandFactoryService.java:139)
> at sun.reflect.GeneratedMethodAccessor265.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:324)
> at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
> at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
> at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:133)
> at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
> at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:142)
> at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
> at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
> at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
> at $Proxy57.doMapping(Unknown Source)
> at org.jboss.portal.core.command.mapper.CommandFactoryDelegate.doMapping(CommandFactoryDelegate.java:86)
> at org.jboss.portal.core.command.mapper.DelegatingCommandFactoryService.doMapping(DelegatingCommandFactoryService.java:139)
> at sun.reflect.GeneratedMethodAccessor265.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:324)
> at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
> at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
> at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:133)
> at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
> at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:142)
> at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
> at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
> at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
> at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
> at $Proxy53.doMapping(Unknown Source)
> at org.jboss.portal.core.model.portal.DefaultPortalCommandFactory.doMapping(DefaultPortalCommandFactory.java:65)
> at sun.reflect.GeneratedMethodAccessor257.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:324)
> at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
> at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
> at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:133)
> at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
> at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:142)
> at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
> at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
> at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
> at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
> at $Proxy68.doMapping(Unknown Source)
> at org.jboss.portal.core.CoreController.handle(CoreController.java:129)
> at sun.reflect.GeneratedMethodAccessor258.invoke(Unknown Source)
> ......
> at org.jboss.portal.core.aspects.server.UserInterceptor.invoke(UserInterceptor.java:175)
> at org.jboss.portal.server.ServerInterceptor.invoke(ServerInterceptor.java:38)
> at org.jboss.portal.common.invocation.Invocation.invokeNext(Invocation.java:131)
> at org.jboss.portal.server.aspects.server.SessionInvalidatorInterceptor.invoke(SessionInvalidatorInterceptor.java:84)
> at org.jboss.portal.server.ServerInterceptor.invoke(ServerInterceptor.java:38)
> at org.jboss.portal.common.invocation.Invocation.invokeNext(Invocation.java:131)
> at org.jboss.portal.core.aspects.server.TransactionInterceptor.org$jboss$portal$core$aspects$server$TransactionInterceptor$invoke$aop(TransactionInt\
> erceptor.java:49)
> at org.jboss.portal.core.aspects.server.TransactionInterceptor$invoke_N5143606530999904530.invokeNext(TransactionInterceptor$invoke_N514360653099990\
> 4530.java)
> at org.jboss.aspects.tx.TxPolicy.invokeInOurTx(TxPolicy.java:79)
> at org.jboss.aspects.tx.TxInterceptor$RequiresNew.invoke(TxInterceptor.java:275)
> at org.jboss.portal.core.aspects.server.TransactionInterceptor$invoke_N5143606530999904530.invokeNext(TransactionInterceptor$invoke_N514360653099990\
> 4530.java)
> at org.jboss.portal.core.aspects.server.TransactionInterceptor.invoke(TransactionInterceptor.java)
> at org.jboss.portal.server.ServerInterceptor.invoke(ServerInterceptor.java:38)
> at org.jboss.portal.common.invocation.Invocation.invokeNext(Invocation.java:131)
> at org.jboss.portal.common.invocation.Invocation.invoke(Invocation.java:171)
> at org.jboss.portal.server.servlet.PortalServlet.process(PortalServlet.java:295)
> at org.jboss.portal.server.servlet.PortalServlet.doGet(PortalServlet.java:173)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:697)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the jboss-jira
mailing list