portals-jetspeed-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Vitaly Baranovsky (JIRA)" <jetspeed-...@portals.apache.org>
Subject [jira] Commented: (JS2-602) Portlet preferences loads from databases very slow
Date Mon, 03 Sep 2007 17:20:59 GMT

    [ 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: jetspeed-dev-unsubscribe@portals.apache.org
For additional commands, e-mail: jetspeed-dev-help@portals.apache.org


Mime
View raw message