2010-06-06 2 views
0

J'utilise une classe singleton pour une connexion PostgresSQL dans un servelet. Le problème est que, une fois ouvert, il fonctionne pendant un certain temps (je suppose jusqu'à un certain délai), puis il commence à émettre une exception d'E/S. Une idée de ce qui arrive à la classe singleton dans Tomcat VM? MerciTomcat Postgres Connection

+0

Probablement l'exception vous indique ce qui ne va pas, alors que dit-elle? – nos

+0

Le même problème a été signalé récemment: http://stackoverflow.com/questions/2979415/how-to-manage-db-connections-on-server – BalusC

Répondre

1

Il n'y a pas de singleton dans Tomcat; C'est juste la façon dont les connexions fonctionnent quand vous n'en avez qu'un et le gardez ouvert pendant longtemps. C'est ce qu'on appelle "timeout".

Cette conception ne peut pas évoluer. Une meilleure solution consiste à garder les connexions ouvertes le plus rapidement possible. Votre code doit ouvrir une connexion, l'utiliser et le fermer dans la portée de la transaction.

Vous devez également configurer un connection pool dans Tomcat.

0

puis il commence à lancer une exception E/S

Eh bien, ce qui est l'exception exactement?

Notez également que vous pouvez utiliser la même connexion JDBC Postgres à partir de plusieurs threads, mais it is not recommended to do so.