[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