1

I was trying to identify a JDBC leaking in our application. I obtained a heap dump which it showed me the in use count from

SELECT p.pool.poolName.toString() AS poolName
, p.checkedOutSize.value AS inUse
, p.cls.baseCount AS active
, p.poolConfiguration.maxSize.value.toString() AS maxSize
, p.poolConfiguration.minSize.value.toString() AS minSize
, p.poolConfiguration.strictMin.value.toString() AS useStrictMin
, p.poolConfiguration.prefill.value.toString() AS prefill 
FROM org.jboss.jca.core.connectionmanager.pool.mcp.SemaphoreConcurrentLinkedDequeManagedConnectionPool p 

OQL result

Incoming objects

But how can I find the stack trace of the application class that was holding up the connection?

Tom
  • 371
  • 2
  • 6
  • 15

1 Answers1

0

You could use the "List objects > with incoming references" to see what points to the managed connection pool and traverse up the chain. I think from there, "Show paths to GC Roots" should show you the thread that holds on to that object and you can then correlate that in the "Threads" view and show the details. You might even be able to right click the thread and select "thread details" and see a stacktrace.