[Building Sakai] DB connections timeout after some time in 2.9.2

Niebel, William (wdn5e) wdn5e at eservices.virginia.edu
Thu Jun 20 09:57:11 PDT 2013


Hi, David.
    I'm sure you'd prefer a certain, quick fix, which I don't have.  But in case it helps, my reading of the log output is that all pool connections are in use, i.e., checked out but not returned to the pool.  (We upgraded a month ago from 2.8.1 to 2.9.1, and haven't seen this problem.)

    One cause would be a 2.9.1-to-2.9.2 change which somehow/sometimes results in a connection not being returned after its use.

    If this is what's happening, you could try setting log to ALL for a few appropriate classes or packages.  I suggest this hoping log output might show connections removed and returned to the pool.   (We use a servlet "LogConfig" to change log levels dynamically without Tomcat restart.  It's been in play for a while and I'm not sure where we got it.)  I have in mind items like:
org.apache.commons.dbcp.PoolingDataSource
org.sakaiproject.db
org.hibernate

    And also to set in a sakai properties file:
hibernate.show_sql=true

    An alternate would be to use a diagnostic proxy somehow between your Sakai and database machines to see the traffic.  mysql "show processlist" might help you identify a build-up of sleeping connections, which you could trace back to proxy output.  (For example, there's a proxy product "Charles".)

    Something like this might show you the sql issued through a connection which isn't returned to the pool, and that might help identify the faulty code.

    Good luck with this.  Please let us know if what you find is interesting.
Bill

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://collab.sakaiproject.org/pipermail/sakai-dev/attachments/20130620/66a8e743/attachment.html 


More information about the sakai-dev mailing list