JBoss'da havuz kullanıyorsanız ve bazı connection'ları kapatmayı unutursanız aşağıdaki gibi hata almaya başlayabilirsiniz:
java.sql.SQLException: javax.resource.ResourceException: IJ000453: Unable to get managed connection for java:jboss/datasources/datasource_name
Yarattığınız connection'ların açıldıktan sonra kapatılıp kapatılmadığını loglabilirsiniz. Bunun için aşağıdaki değişiklikleri standalone.xml'de yapmak gerekiyor.
datasource'nuz da use-ccm="true" değeri olmalı :
<datasource jta="true" jndi-name="java:jboss/datasources/ds_name" pool-name="ds_name" enabled="true" use-java-context="true" use-ccm="true">
urn:jboss:domain:jca:1.1 bölümü aşağıdaki gibi olmalı
<cached-connection-manager debug="true" error="true"/>
Görüldüğü gibi cached-connection-manager elementine debug="true" error="true" eklenmiştir.
Logger'ların eklendiği bölüme de aşağıdaki eklenir :
root logger'ı da info durumuna getirebilirsiniz :
Bu işlemleri yaptıktan sonra her connection açıldığında aşağıdaki gibi bir log görülmeli :
09:27:19,584 DEBUG [org.jboss.jca.core.connectionmanager.pool.strategy.OnePool] (Thread-79) data_source_name: getConnection(null, null) [1/5]
Connection kapatıldığı zamanda
09:27:19,688 DEBUG [org.jboss.jca.core.connectionmanager.pool.strategy.OnePool] (Thread-79) meydanx_log: returnConnection(67b98523, false) [1/4]
Eğer açılan bir connection var ancak kapatılan (havuza geri gönderilen) bir connection yok ise kaçağı (leak) bulmuşsunuz demektir.