2010-04-07 3 views
4

Je développe un webservice basé sur apache tomcat 6.0.26, sur apache cxf 2.2.7, sur spring 3.0, sur hibernate 3.3 et sur sybase sqlanywhere 11. im utilise le dernier pilote JDBC de SYBASE jconn .jar Version 6.SQL Anywhere 11, JZ0C0: La connexion est déjà fermée

La couche de persistance est basée sur spring + hibernate dao, la connexion est configurée via un datasource JNDI (répertoire META-INF).

Il semble que pendant les périodes d'inactivité plus longues, la connexion du service Web à la base de données soit fermée.

Exception: java.sql.SQLException: JZ0C0: La connexion est déjà fermée.

+0

J'ai résolu mon problème, j'ai ajouté une validationQuery à ma source de données JNDI. – Alex

+2

Au lieu d'un commentaire, cette solution serait mieux comme réponse. –

Répondre

4

Par défaut, SQL Anywhere ferme une connexion inactive après quatre heures. Pour changer ceci, vous pouvez spécifier IdleTimeout=x (ou Idle=x) dans votre chaîne de connexion, où x est le nombre de minutes après lequel la connexion sera fermée (0 = jamais). Vous pouvez également réinitialiser la valeur par défaut sur le serveur en utilisant le commutateur -ti x - à nouveau, x est en minutes.

Questions connexes