Je rencontre un problème de pooling de connexion Oracle via OracleConnectionCacheImpl. Lorsque je me connecte à un pool de connexion sur mon serveur de base de données (Oracle 10g) via le pilote léger, tout fonctionne correctement jusqu'à une heure non spécifiée, la connexion db est interrompue (probablement en raison de connexions inactives?) Et un message d'erreur:Comment reconnecter automatiquement le pool de connexions Oracle après une interruption de connexion?
Connexion fermée.
Actualiser la page et réessayer la connexion reconnecte la base de données, il ne semble donc pas y avoir de problème avec le réseau ou la base de données. Est-ce un moyen pour le pool de connexions Oracle de valider sa connexion et de se reconnecter si la connexion dans le pool est morte pour une raison quelconque?
J'utilise Apache Tomcat 6.0.18, mise à jour Java EE6 11.
(Il semble y avoir une fonction ping dans le pilote mince Oracle. Est-ce que l'aide et où puis-je trouver?)
1) Pouvez-vous ajouter toute trace de la pile pour la connexion fermée 2) Avez-vous mis InactivityTimeout, TimeToLiveTimeout ou AbandonedConnectionTimeout à des valeurs non par défaut? 3) Utilisez-vous ValidateConnection? –
4) Les connexions physiques entre le serveur d'applications et le serveur de base de données sont-elles coupées au niveau du réseau, par ex. par un pare-feu? –
Où dois-je définir ces paramètres? Je suis nouveau à la programmation Oracle, donc je ne suis pas sûr où trouver ces paramètres. Où puis-je trouver ValidateConnection et forcer une reconnexion? (Rafraîchir simplement mon navigateur juste après que je vois que l'erreur corrigera les choses immédiatement, je ne sais pas s'il s'agit d'un problème de pare-feu.) – futureelite7