• Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

DBCP deadlock on BasicDataSource.getConnection()

 
Dennis Franklin
Greenhorn
Posts: 3
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Anyone ever seen this before? A bunch of threads in Tomcat is stuck trying to get a connection:



Seems like its a deadlock, but I'm not sure how this is happening.
 
Pierre-Hugues Charbonneau
Greenhorn
Posts: 9
  • Likes 1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi Dennis,

This normally means that your Tomcat Pool is running out of Connection. At that point Tomcat ObjectPool code will start to wait until a Connection is available.

Do you see other Threads involved in actual database transactions or just waiting to acquire a Connection? Also, what are your current Tomcat settings for this particular data source?

Possible scenarios:

- Database hanging scenario causing rapid depletion of your Tomcat JDBC Data Source (long running query, database slowdown condition, too much load vs. tuning etc.)
- JDBC DataSource/Connection leak

At this point, please provide more detail on other Threads from your captured Thread Dump so we can pinpoint the root cause as per process below:

- Breakdown Thread Dump in logical silos:
- What is the total # of active Threads (executing a request)
- What is the total # of Threads waiting to acquire a Connection from your JDBC DataSource
- What is the total # of Threads involved in an actual transaction with your JDBC DataSource
 
Dennis Franklin
Greenhorn
Posts: 3
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Thanks Pierre-Hugues for the insight. I had completely forgotten to set the connection pool size settings. Added maxActive and maxIdle resolved the issue.

Just out of curiosity, what's the default maxActive if it is not set?
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic