[Building Sakai] hibernate problem

Massicotte Steve steve.massicotte at umontreal.ca
Tue Apr 27 12:29:18 PDT 2010


Hi,

 

Your right it’s not hibernate stuff.

 

Is there some setting I need to change to get the best performance from the pooler (dbcp in this case).  It’s seem pretty strange that I cannot get a new connection from the pool. 

 

Thanks

 

Steve

 

De : azeckoski at gmail.com [mailto:azeckoski at gmail.com] De la part de Aaron Zeckoski
Envoyé : 26 avril 2010 13:40
À : Massicotte Steve
Cc : sakai-dev at collab.sakaiproject.org
Objet : Re: [Building Sakai] hibernate problem

 

I don't see any indication that hibernate is in use from this stacktrace. Most of the core parts of Sakai do not use hibernate so are you sure the issue is hibernate related? It looks like this is related to the Sakai SQLService (Sakai custom ORM thing) rather than hibernate. You might need to tune the size of your connection pool but hibernate may be a red herring here.

-AZ



On Mon, Apr 26, 2010 at 6:30 PM, Massicotte Steve <steve.massicotte at umontreal.ca> wrote:

Hi,

 

We run some performance test on our pilot environnement and we manage to freeze the Sakai application (I was enable to show a page or to access the gateway page).  We got this message in the catalina.out

 

2010-04-22 14:10:25,028 WARN http-8080-Processor633 org.sakaiproject.db.impl.BasicSqlService - Sql.dbRead: sql: select NAME, VALUE from SAKAI_SITE_PAGE_PROPERTY where ( PAGE_ID = ? ) 2473b27e-5d62-4c3a-bf6f-104bdb89b9e2
org.apache.commons.dbcp.SQLNestedException: Cannot get a connection, pool error Timeout waiting for idle object
at org.apache.commons.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:104)
at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:880)
at org.sakaiproject.db.impl.BasicSqlService.borrowConnection(BasicSqlService.java:254)
at org.sakaiproject.db.impl.BasicSqlService.dbRead(BasicSqlService.java:535)
at org.sakaiproject.util.BaseDbFlatStorage.readProperties(BaseDbFlatStorage.java:1077)
at org.sakaiproject.site.impl.DbSiteService$DbStorage.readPageProperties(DbSiteService.java:1797)
at org.sakaiproject.site.impl.BaseSitePage.getProperties(BaseSitePage.java:732)
at org.sakaiproject.site.impl.BaseSitePage.setupPageCategory(BaseSitePage.java:602)
at org.sakaiproject.site.impl.BaseToolConfiguration.setPageCategory(BaseToolConfiguration.java:515)
at org.sakaiproject.site.impl.BaseToolConfiguration.<init>(BaseToolConfiguration.java:110)
at org.sakaiproject.site.impl.DbSiteService$DbStorage$14.readSqlResultRecord(DbSiteService.java:1937)
at org.sakaiproject.db.impl.BasicSqlService.dbRead(BasicSqlService.java:566)
at org.sakaiproject.db.impl.BasicSqlService.dbRead(BasicSqlService.java:464)
at org.sakaiproject.site.impl.DbSiteService$DbStorage.readSiteTools(DbSiteService.java:1918)
at org.sakaiproject.site.impl.BaseSite.loadAll(BaseSite.java:899)
at org.sakaiproject.site.impl.BaseSiteService.getDefinedSite(BaseSiteService.java:578)
at org.sakaiproject.site.impl.BaseSiteService.getSite(BaseSiteService.java:658)
at org.sakaiproject.site.impl.BaseSiteService.getSiteVisit(BaseSiteService.java:734)
at org.sakaiproject.portal.service.SiteNeighbourhoodServiceImpl.getSiteVisit(SiteNeighbourhoodServiceImpl.java:434)
at org.sakaiproject.portal.service.SiteNeighbourhoodServiceImpl.getMyWorkspace(SiteNeighbourhoodServiceImpl.java:355)
at org.sakaiproject.portal.service.SiteNeighbourhoodServiceImpl.getAllSites(SiteNeighbourhoodServiceImpl.java:161)
at org.sakaiproject.portal.service.SiteNeighbourhoodServiceImpl.getSitesAtNode(SiteNeighbourhoodServiceImpl.java:96)
at org.sakaiproject.portal.charon.site.AbstractSiteViewImpl.<init>(AbstractSiteViewImpl.java:95)
at org.sakaiproject.portal.charon.site.DefaultSiteViewImpl.<init>(DefaultSiteViewImpl.java:61)
at org.sakaiproject.portal.charon.site.PortalSiteHelperImpl.getSitesView(PortalSiteHelperImpl.java:1109)
at org.sakaiproject.portal.charon.handlers.SiteHandler.includeTabs(SiteHandler.java:569)
at org.sakaiproject.portal.charon.handlers.SiteHandler.includeSiteNav(SiteHandler.java:370)
at org.sakaiproject.portal.charon.handlers.SiteHandler.doSite(SiteHandler.java:219)
at org.sakaiproject.portal.charon.handlers.SiteHandler.doGet(SiteHandler.java:113)
at org.sakaiproject.portal.charon.SkinnableCharonPortal.doGet(SkinnableCharonPortal.java:768)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:627)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.sakaiproject.util.RequestFilter.doFilter(RequestFilter.java:616)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:581)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:873)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
at java.lang.Thread.run(Thread.java:595)
Caused by: java.util.NoSuchElementException: Timeout waiting for idle object
at org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:825)
at org.apache.commons.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:96)
... 49 more

 

It’s seem that all of the 50 sessions are in use and there is no more session available.  My DBA confirm me that he see 50 sessions.  I was able to connect with my local client (SQL Developer making the 51th session).  We stop the test and after 3 to 4 minutes everything was back to normal.

 

I’m not a great specialist of hibernate but does anyome got an idea or a hint ?  I try with no success to repeat the problem in my pre-prod environnement.

 

Specifications :

 

Sakai version  : 2.6.1

DB : Oracle 10g

JDK : 1.5.0_22

Tomcat : 5.5.28

 

Thanks

 

Steve

 

Steve Massicotte 
Information System Architect 
Project : Learning management system (ENA) 
University of Montreal 

	
	

 

 


_______________________________________________
sakai-dev mailing list
sakai-dev at collab.sakaiproject.org
http://collab.sakaiproject.org/mailman/listinfo/sakai-dev

TO UNSUBSCRIBE: send email to sakai-dev-unsubscribe at collab.sakaiproject.org with a subject of "unsubscribe"




-- 
Aaron Zeckoski - Software Engineer - http://tinyurl.com/azprofile

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://collab.sakaiproject.org/pipermail/sakai-dev/attachments/20100427/8ca3ea05/attachment.html 


More information about the sakai-dev mailing list