jdbc etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
jdbc etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

18 Mart 2010 Perşembe

Hibernate'te APPARENT DEADLOCK

Hibernate kullanıcıları böyle bir hata ile karşılaşıyor ise :

08:15:22,164 WARN ThreadPoolAsynchronousRunner:608 - com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector@4d480ea -- APPARENT DEADLOCK!!! Creating emergency threads for unassigned pending tasks!
08:15:22,172 WARN ThreadPoolAsynchronousRunner:624 - com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector@4d480ea -- APPARENT DEADLOCK!!! Complete Status:
Managed Threads: 3
Active Threads: 3


Yapmamız gereken :

Bir önceki blog girdisindeki gibi hibernate.cfg.xml'e ilgili satırlar eklemelidir.

Hibernate'ten Mysql'e Otomatik Bağlantı Açılması

Hibernate kullanarak veritabanı işlemleri yapan bir uygulamayı web'te yayınladığımda, bir süre sonra (tahminen birkaç saat) uygulamanın veritabanı ile bağlantısının kesildiğini farkettim. Log'lara baktığımda ise şöyle bir hatanın verildiğini gördüm :

org.hibernate.util.JDBCExceptionReporter: The last packet successfully received from the server was 56697 seconds ago. The last packet sent successfully to the server was 56697 seconds ago, which is longer than the server configured value of ‘wait_timeout’. You should consider either expiring and/or testing connection validity before use in your application, increasing the server configured values for client timeouts, or using the Connector/J connection property ‘autoReconnect=true’ to avoid this problem

Böyle bir hata alıyor isek yapmamız gereken c3p0 kütüphanesini kullanmak olacaktır.
Kısaca c3p0 ne işe yarıyor peki :

* Veritabanı bağlantılarını elde etmek için, geleneksel DriverManager tabanlı JDBC sürücülerini yeni javax.sql.DataSource'larına uyarlamada kullanılır
* Connection ve DriverManager pooling sağlar.

Yapmamız gereken :

- http://sourceforge.net/projects/c3p0/files/ buradan c3p0 binary'sini indirin. c3p0*.jar 'ı classpath'e ekleyin
- hibernate.cfg.xml dosyasına şu satırları ekleyin


1
100
5
0
2
90
18000
25000
true

org.hibernate.connection.C3P0ConnectionProvider



- c3p0.properties adında bir dosya oluşturun ve şu satırları ekleyin :

c3p0.testConnectionOnCheckout=true
c3p0.maxStatements=0
c3p0.maxStatementsPerConnection=0


Bu dosyayı da(c3p0.properties) classpath'e ekleyin.

27 Ocak 2010 Çarşamba

mysql hatası : com.mysql.jdbc.CommunicationsException: Communications link failure

veritabanı işlemi yaparken :
com.mysql.jdbc.CommunicationsException: Communications link failure şeklinde bir hata alıyor isek

Yapmamız gereken :
- /etc/mysql/my.cnf i.dosyasında skip-networking satırını #skip-networking şeklinde comment edilmeli