468x60

mercoledì 27 gennaio 2010

EntityManager e Database Remoto

Sviluppando un'applicazione Java Swing con Netbeans 6.8 e Toplink per la persistenza, la quale si connetteva ad un database MySQL remoto, mi sono accorto che alla chiusura dell'applicazione non venivano chiuse le connessioni al database e che rimanevano attive (risultando come "Sleep", se monitoravo le connessioni attive con MySQL Administrator). Se invece facevo lavorare l'applicazione su un database locale, le connessioni al database venivano tutte chiuse.

Ho provato a modificare il codice Java, facendo eseguire entityManager.flush() e entityManager.close() alla chiusura dell'applicazione, ma le connessioni rimanevano sempre attive...

Ho scoperto che questo problema era dovuto ad un bug di MySQL, infatti non c'è alcun problema nelle versioni da MySQL 5.1.41-community in poi.

Nelle versioni precedenti di MySQL (5.1.39) ho risolto questo problema modificando il file di configurazione my.ini, aggiungendo questo:

wait_timeout = 15

Nessun commento:

Posta un commento

468x60

Cerca su Google

Cerca nel Blog con Google