Tomcat (sürüm 7) 'de dbcp bağlantı havuzu kullanıyorum ve kodumda bir yere bağlantı sızıntısı var.Tomcat'te terkedilmiş bağlantıların kaynağını belirlemeye çalışıyor
bana ona benim kodu ile geri döndü ve "havuz hatası Zaman aşımı boşta nesne için bekleyen bir bağlantı alınamıyor": Kısa bir miktar sonra, yeni bir bağlantı için bir istek aşağıdaki özel durum döndürür Tüm bağlantılar düzgün kapatılıyor gibi görünüyor (herkes bunu söylemiyor ...).
logAbandoned="true" removeAbandoned="true" removeAbandonedTimeout="300"
Yani kaynak etiketi artık şuna benzer:
bu hata ayıklamak için ben context.xml aşağıdaki özelliklere ilave<Resource name="jdbc/findata" auth="Container" type="javax.sql.DataSource"
maxActive="20" maxIdle="5" maxWait="10000"
username="root" password="xxxxxx" driverClassName="com.mysql.jdbc.Driver"
logAbandoned="true" removeAbandoned="true" removeAbandonedTimeout="300"
url="jdbc:mysql://localhost:3306/findata"/>
Sonra yeniden tomcat ve web vurmaya başladı Hata mesajı görüntülenene kadar sayfalar (tarayıcı penceresinde). Ancak henüz "logAbandoned" özelliğinin bilgilerini yazdığını henüz anlamadım. Ben
/usr/share/apache-tomcat-7.0.11/logs
yılında arıyorum ama orada sadece son değiştirilen günlük dosyası Herhangi yardım çok takdir edilir
localhost_access_log.2011-04-18.txt
olduğunu. Ben de benzer bir senaryo yaptığı şey
Kayıtlarda terkedilmiş bağlantıların nasıl görüneceğini anlayamadım, ama başka bir zamana geri dönüp bu sefer başarılı oldum. sızıntının kaynağını bulmakta. Kimin hata ayıklayıcılara veya kayıtlara ihtiyacı var - değil mi? ;) – opike