[
https://issues.apache.org/jira/browse/JS2-602?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12524560
]
Vitaly Baranovsky commented on JS2-602:
---------------------------------------
About year has gone from time I open this issue...
Main page of my portal has 43 portlets now. Each of them has many preferences
(20-50). Most popular portlet (meets 22 times in this page) has 116
preferences! So, this page is loading at first time about 12 minutes!!! So,
portal starting up with about 2 hours!!!
Most of this time portal is loading its preferences from portal database.
Stackdump of thread at this time is writed below.
All of this preferences are edited only by administrator. Users can't edit this
preferences. So, if in edit_defaults portlet mode
(https://issues.apache.org/jira/browse/JS2-634) defaults preferences will be
store into psml files, not in database, it may greatly increase starting up of
such portals. May be...
So, preferences are loading too long, and loading preferences should be
increased!
Here is stack dump of thread at time of loading preferences:
"http-8080-Processor18 been through
net.sf.ehcache.constructs.web.filter.SimplePageCachingFilter" daemon prio=1
tid=0xb1a396c0 nid=0xbcf runnable [0xadaec000..0xadaef1d0]
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(Unknown Source)
at com.ibm.db2.jcc.c.gb.b(gb.java:184)
at com.ibm.db2.jcc.c.gb.c(gb.java:238)
at com.ibm.db2.jcc.c.gb.c(gb.java:353)
at com.ibm.db2.jcc.c.gb.v(gb.java:1362)
at com.ibm.db2.jcc.c.jb.a(jb.java:42)
at com.ibm.db2.jcc.c.w.a(w.java:30)
at com.ibm.db2.jcc.c.cc.f(cc.java:161)
at com.ibm.db2.jcc.b.sf.n(sf.java:1219)
at com.ibm.db2.jcc.b.tf.gb(tf.java:1816)
at com.ibm.db2.jcc.b.tf.d(tf.java:2298)
at com.ibm.db2.jcc.b.tf.X(tf.java:508)
at com.ibm.db2.jcc.b.tf.executeQuery(tf.java:491)
- locked <0x307bcdd8> (a com.ibm.db2.jcc.c.b)
at
org.apache.commons.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:92)
at
org.apache.ojb.broker.accesslayer.JdbcAccessImpl.executeQuery(JdbcAccessImpl.java:312)
at
org.apache.ojb.broker.accesslayer.RsQueryObject.performQuery(RsQueryObject.java:74)
at
org.apache.ojb.broker.accesslayer.RsIterator.<init>(RsIterator.java:185)
at
org.apache.ojb.broker.core.RsIteratorFactoryImpl.createRsIterator(RsIteratorFactoryImpl.java:58)
at
org.apache.ojb.broker.core.PersistenceBrokerImpl.getRsIteratorFromQuery(PersistenceBrokerImpl.java:1918)
at
org.apache.ojb.broker.core.PersistenceBrokerImpl.getIteratorFromQuery(PersistenceBrokerImpl.java:1493)
at
org.apache.ojb.broker.core.PersistenceBrokerImpl.getObjectByQuery(PersistenceBrokerImpl.java:1620)
at
org.apache.ojb.broker.core.DelegatingPersistenceBroker.getObjectByQuery(DelegatingPersistenceBroker.java:307)
at
org.apache.ojb.broker.core.DelegatingPersistenceBroker.getObjectByQuery(DelegatingPersistenceBroker.java:307)
at
org.springframework.orm.ojb.PersistenceBrokerTemplate$2.doInPersistenceBroker(PersistenceBrokerTemplate.java:208)
at
org.springframework.orm.ojb.PersistenceBrokerTemplate.execute(PersistenceBrokerTemplate.java:167)
at
org.springframework.orm.ojb.PersistenceBrokerTemplate.getObjectByQuery(PersistenceBrokerTemplate.java:206)
at
org.apache.jetspeed.prefs.impl.PersistenceBrokerPreferencesProvider.getNode(PersistenceBrokerPreferencesProvider.java:165)
at
org.apache.jetspeed.prefs.impl.PersistenceBrokerPreferencesProvider.nodeExists(PersistenceBrokerPreferencesProvider.java:185)
at
org.apache.jetspeed.prefs.impl.PersistenceBrokerPreferencesProvider.createNode(PersistenceBrokerPreferencesProvider.java:200)
at sun.reflect.GeneratedMethodAccessor194.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at
org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:284)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:155)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:122)
at
org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:56)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:144)
at
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:174)
at $Proxy7.createNode(Unknown Source)
at
org.apache.jetspeed.prefs.impl.PreferencesImpl.<init>(PreferencesImpl.java:85)
at
org.apache.jetspeed.prefs.impl.PreferencesImpl.childSpi(PreferencesImpl.java:154)
at java.util.prefs.AbstractPreferences.getChild(Unknown Source)
- locked <0x2e13d600> (a java.lang.Object)
at java.util.prefs.AbstractPreferences.nodeExists(Unknown Source)
- locked <0x2e13d600> (a java.lang.Object)
at java.util.prefs.AbstractPreferences.nodeExists(Unknown Source)
- locked <0x2e13d600> (a java.lang.Object)
at
org.apache.jetspeed.om.preference.impl.PrefsPreferenceSetImpl.get(PrefsPreferenceSetImpl.java:125)
at
org.apache.jetspeed.om.preference.impl.PrefsPreferenceSetImpl$PortletPrefsIterator.next(PrefsPreferenceSetImpl.java:386)
at
org.apache.jetspeed.components.portletentity.PortletEntityImpl.backupValues(PortletEntityImpl.java:193)
at
org.apache.jetspeed.components.portletentity.PortletEntityImpl.getPreferenceSet(PortletEntityImpl.java:166)
at
org.apache.jetspeed.components.portletentity.PortletEntityImpl.getPreferenceSet(PortletEntityImpl.java:141)
at
org.apache.pluto.core.impl.PortletPreferencesImpl.<init>(PortletPreferencesImpl.java:72)
at
org.apache.pluto.factory.impl.PortletPreferencesFactoryImpl.getPortletPreferences(PortletPreferencesFactoryImpl.java:39)
at
org.apache.pluto.factory.PortletObjectAccess.getPortletPreferences(PortletObjectAccess.java:127)
at
org.apache.pluto.core.impl.RenderRequestImpl.getPreferences(RenderRequestImpl.java:74)
at
$PortletRequest_114cc5dd039.getPreferences($PortletRequest_114cc5dd039.java)
at
$PortletRequest_114cc5dd037.getPreferences($PortletRequest_114cc5dd037.java)
at net.myorg.portal.rss.RSSListPage.pageBeginRender(RSSListPage.java:75)
at
org.apache.tapestry.AbstractPage.firePageBeginRender(AbstractPage.java:478)
at org.apache.tapestry.AbstractPage.renderPage(AbstractPage.java:268)
at
org.apache.tapestry.engine.RequestCycle.renderPage(RequestCycle.java:366)
at
org.apache.tapestry.portlet.PortletRendererImpl.renderPage(PortletRendererImpl.java:76)
at
$PortletRenderer_114cc5dd02e.renderPage($PortletRenderer_114cc5dd02e.java)
at
org.apache.tapestry.portlet.PortletHomeService.service(PortletHomeService.java:80)
at $IEngineService_114cc5dd018.service($IEngineService_114cc5dd018.java)
at
org.apache.tapestry.services.impl.EngineServiceOuterProxy.service(EngineServiceOuterProxy.java:66)
at
org.apache.tapestry.engine.AbstractEngine.service(AbstractEngine.java:248)
at
org.apache.tapestry.services.impl.InvokeEngineTerminator.service(InvokeEngineTerminator.java:60)
at
$WebRequestServicer_114cc5dcfe6.service($WebRequestServicer_114cc5dcfe6.java)
at
$WebRequestServicer_114cc5dcfe4.service($WebRequestServicer_114cc5dcfe4.java)
at
org.apache.tapestry.portlet.RenderRequestServicerToWebRequestServicerBridge.service(RenderRequestServicerToWebRequestServicerBridge.java:49)
at
$RenderRequestServicer_114cc5dcfde.service($RenderRequestServicer_114cc5dcfde.java)
at
$RenderRequestServicer_114cc5dcfd8.service($RenderRequestServicer_114cc5dcfd8.java)
at
org.apache.tapestry.portlet.ApplicationPortlet.render(ApplicationPortlet.java:161)
at
org.apache.jetspeed.factory.JetspeedPortletInstance.render(JetspeedPortletInstance.java:102)
at
org.apache.jetspeed.container.JetspeedContainerServlet.doGet(JetspeedContainerServlet.java:230)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at
org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672)
at
org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:574)
at
org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:499)
at
org.apache.jetspeed.container.invoker.ServletPortletInvoker.invoke(ServletPortletInvoker.java:215)
at
org.apache.jetspeed.container.invoker.ServletPortletInvoker.render(ServletPortletInvoker.java:126)
at
org.apache.pluto.PortletContainerImpl.renderPortlet(PortletContainerImpl.java:119)
at
org.apache.jetspeed.container.JetspeedPortletContainerWrapper.renderPortlet(JetspeedPortletContainerWrapper.java:120)
at
org.apache.jetspeed.aggregator.impl.RenderingJobImpl.execute(RenderingJobImpl.java:121)
at
org.apache.jetspeed.aggregator.impl.PortletRendererImpl.renderNow(PortletRendererImpl.java:120)
at
org.apache.jetspeed.aggregator.impl.PageAggregatorImpl.aggregateAndRender(PageAggregatorImpl.java:199)
at
org.apache.jetspeed.aggregator.impl.PageAggregatorImpl.aggregateAndRender(PageAggregatorImpl.java:182)
at
org.apache.jetspeed.aggregator.impl.PageAggregatorImpl.aggregateAndRender(PageAggregatorImpl.java:182)
at
org.apache.jetspeed.aggregator.impl.PageAggregatorImpl.aggregateAndRender(PageAggregatorImpl.java:182)
at
org.apache.jetspeed.aggregator.impl.PageAggregatorImpl.build(PageAggregatorImpl.java:106)
at
org.apache.jetspeed.aggregator.AggregatorValve.invoke(AggregatorValve.java:48)
at
org.apache.jetspeed.pipeline.JetspeedPipeline$Invocation.invokeNext(JetspeedPipeline.java:166)
at
org.apache.jetspeed.decoration.DecorationValve.invoke(DecorationValve.java:110)
at
org.apache.jetspeed.pipeline.JetspeedPipeline$Invocation.invokeNext(JetspeedPipeline.java:166)
at
org.apache.jetspeed.pipeline.valve.impl.ActionValveImpl.invoke(ActionValveImpl.java:147)
at
org.apache.jetspeed.pipeline.JetspeedPipeline$Invocation.invokeNext(JetspeedPipeline.java:166)
at
org.apache.jetspeed.container.ContainerValve.invoke(ContainerValve.java:76)
at
org.apache.jetspeed.pipeline.JetspeedPipeline$Invocation.invokeNext(JetspeedPipeline.java:166)
at
org.apache.jetspeed.profiler.impl.ProfilerValveImpl.invoke(ProfilerValveImpl.java:255)
at
org.apache.jetspeed.pipeline.JetspeedPipeline$Invocation.invokeNext(JetspeedPipeline.java:166)
at
org.apache.jetspeed.security.impl.LoginValidationValveImpl.invoke(LoginValidationValveImpl.java:159)
at
org.apache.jetspeed.pipeline.JetspeedPipeline$Invocation.invokeNext(JetspeedPipeline.java:166)
at
org.apache.jetspeed.security.impl.PasswordCredentialValveImpl.invoke(PasswordCredentialValveImpl.java:149)
at
org.apache.jetspeed.pipeline.JetspeedPipeline$Invocation.invokeNext(JetspeedPipeline.java:166)
at
org.apache.jetspeed.localization.impl.LocalizationValveImpl.invoke(LocalizationValveImpl.java:169)
at
org.apache.jetspeed.pipeline.JetspeedPipeline$Invocation.invokeNext(JetspeedPipeline.java:166)
at
org.apache.jetspeed.security.impl.AbstractSecurityValve$1.run(AbstractSecurityValve.java:117)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAsPrivileged(Unknown Source)
at
org.apache.jetspeed.security.impl.AbstractSecurityValve.invoke(AbstractSecurityValve.java:111)
at
org.apache.jetspeed.pipeline.JetspeedPipeline$Invocation.invokeNext(JetspeedPipeline.java:166)
at
org.apache.jetspeed.container.url.impl.PortalURLValveImpl.invoke(PortalURLValveImpl.java:67)
at
org.apache.jetspeed.pipeline.JetspeedPipeline$Invocation.invokeNext(JetspeedPipeline.java:166)
at
org.apache.jetspeed.capabilities.impl.CapabilityValveImpl.invoke(CapabilityValveImpl.java:128)
at
org.apache.jetspeed.pipeline.JetspeedPipeline$Invocation.invokeNext(JetspeedPipeline.java:166)
at
org.apache.jetspeed.pipeline.JetspeedPipeline.invoke(JetspeedPipeline.java:145)
at
org.apache.jetspeed.engine.JetspeedEngine.service(JetspeedEngine.java:214)
at
org.apache.jetspeed.engine.JetspeedServlet.doGet(JetspeedServlet.java:238)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at
net.sf.ehcache.constructs.web.filter.CachingFilter.buildPage(CachingFilter.java:211)
at
net.sf.ehcache.constructs.web.filter.CachingFilter.buildPageInfo(CachingFilter.java:164)
at
net.sf.ehcache.constructs.web.filter.CachingFilter.doFilter(CachingFilter.java:130)
at net.sf.ehcache.constructs.web.filter.Filter.doFilter(Filter.java:92)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:432)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
at
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
at
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Unknown Source)
> Portlet preferences loads from databases very slow
> --------------------------------------------------
>
> Key: JS2-602
> URL: https://issues.apache.org/jira/browse/JS2-602
> Project: Jetspeed 2
> Issue Type: Bug
> Components: Portlet Entities and Preferences
> Affects Versions: 2.1-dev
> Environment: tomcat 5.5.20, jetspeed-2.1-dev, MS SQL Server 2005 or
> IBM DB2 8.2 as a portal database
> Reporter: Vitaly Baranovsky
>
> I have page with 20 portlets. Each portlet has 35 preferences.
> This preferences loads from database very slow (more than 1 minute), because
> jetspeed runs on portal database more than 1500 queries:
> SELECT
> A0.NODE_ID,A0.PARENT_NODE_ID,A0.NODE_NAME,A0.NODE_TYPE,A0.FULL_PATH,A0.CREATION_DATE,A0.MODIFIED_DATE
>
> FROM PREFS_NODE A0 WHERE (A0.FULL_PATH = :1) AND A0.NODE_TYPE = :2).
> Each of this queries runs about 40 milliseconds.
> So, preferences loading performance should be increased.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]