2013-03-26 27 views
20

erkek kedi kapatma olduğunda ben catalina.out günlük dosyasında aşağıdaki mesajları almak sızıntı bir bellek oluşturmak için çok muhtemeldir. Tomcat 7.x ve Tomcat JDBC veri kaynağını kullanıyorum.tomcat7 - jdbc veri kaynağı - Bu

Mar 26, 2013 1:17:52 PM org.apache.catalina.loader.WebappClassLoader clearReferencesJdbc 
SEVERE: The web application [/my_webapp] registered the JDBC driver [com.mysql.jdbc.Driver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered. 
Mar 26, 2013 1:17:52 PM org.apache.catalina.loader.WebappClassLoader clearReferencesThreads 
SEVERE: The web application [/my_webapp] appears to have started a thread named [MySQL Statement Cancellation Timer] but has failed to stop it. This is very likely to create a memory leak. 

ilk DataSource bu iyi yani zorla kaydı yapıldı olduğunu iddia etmektedir. Öyle gibi yok-yöntemi yapılandırılmış Çünkü Ancak garip:

<bean name="dataSource" class="org.apache.tomcat.jdbc.pool.DataSource" destroy-method="close"> 
    <property name="driverClassName" value="com.mysql.jdbc.Driver"/> 
    <property name="url" value="jdbc:mysql://localhost:3306/mydb"/> 
    <property name="username" value="root"/> 
    <property name="password" value="password"/> 
</bean> 

Ben ikincisini emin olsun değil neden. "MySQL Deyim İptal Zamanlayıcısı" ile ilgili.

Herhangi bir yardım

Edit 1 takdir: Ben @Zelldon önerdiği düzeltmeyi denedi ve ilk hata kurtulur. Ancak MySQL Statement Cancellation Timer ilgili sorun halen savaşta lib değil tomcat/sql Connector/Sürücü koymak

+0

Olası çoğaltılabilir [Bellek sızıntısı sorunları nasıl giderilir?] (Http://stackoverflow.com/questions/10615118/how-to-solve-memory-leak-problems) – OhadR

+0

MySQL hakkında daha fazla bilgi edinmek için bu yorumu görün İptal İpliği sorunu. https://stackoverflow.com/a/46733027/185565 – Whome

+0

https://stackoverflow.com/a/47019335/3408531 – TiMr

cevap

27

deneyin devam etmektedir. Savaşları her dağıttığınız zaman, konektör/sürücü oluşturulacak, bazen çöp toplayıcıları bir bellek sızıntısında bitecek olanları kaldıramaz. Bu yüzden, bağlayıcıyı tomcat/lib klasörüne taşımayı deneyin.

aşağıdaki cevapları okuyunuz:

Why must the JDBC driver be put in TOMCAT_HOME/lib folder?

How to configure Tomcat to connect with MySQL

+0

Teşekkürler. Düzenlenmiş sorularıma bakın – arahant

+0

Diğer libray'ları da kullanıyor musunuz? – Zelldon

+0

nope. DataSource, Tomcat 7 tarafından sağlanmıştır. Sürücü, MySql Connector/J'dir. Bunun da ötesinde, Spring JDBC var ama sanırım bu konuyla ilgisi yok. Bunun dışında, veritabanı ile ilgili başka bir veritabanı yoktur. – arahant

1

O MySQL jdbc bağlayıcı bu hatadan ilgili olabilir: http://bugs.mysql.com/bug.php?id=65909.

MySQL ekibinin bunu düzeltmesi için bekleyebilir ya da MySQL ile düzgün çalışan Drizzle JDBC connector'u kullanmayı denediniz (yalnızca url bağlantısında parametreyi değiştirmeniz yeterlidir) ve testlerimde bu tür bir böcek.

+0

drizzle site çöktü – redochka

İlgili konular