Oracle
 sql >> Base de données >  >> RDS >> Oracle

java.sql.SQLException :Exception Io :canal cassé, comment récupérer sans redémarrage ?

Les possibilités suivantes pourraient être à l'origine de l'exception :

  1. Problème de réseau :il s'agit du réseau entre la base de données et le serveur d'applications, provoquant l'interruption de la connexion physique après un certain temps. Cela est probablement dû à un pare-feu exécuté derrière le réseau qui est configuré pour tuer les connexions db après une période de temps spécifiée. Vous pouvez envisager une solution de contournement pour maintenir la connexion active tout le temps en reconfigurant simplement votre serveur d'applications. Pour Tomcat, vous pouvez essayer d'ajouter validationQuery="select 'validationQuery' from dua l dans le fichier de configuration de la source de données Tomcat (context.xml)

  2. Les connexions au serveur de base de données sont en cours de réinitialisation et le client n'est pas notifié par le pilote de base de données. Le problème dans ce cas est que le pilote Oracle découvre que sa connexion au SGBD (pare-feu à nouveau, peut-être ?) a été fermée par l'autre extrémité. Vous pouvez envisager de définir votre délai d'expiration de connexion (dans le pool) plus court que le délai d'expiration du serveur réseau/DB comme solution.