Si j'ai un JDBCAppender configuré pour lancer des messages de journal à MySQL et, pendant que mon système est en place je redémarre la base de données est-il reconnecter à DB?Se reconnecter à DB dans log4j
Répondre
J'ai eu ce cas d'utilisation au cours de la fin de semaine dernière. Ma base de données est hébergée par Amazon AWS. Il a roulé sur ma base de données de journal et toutes les instances se connectant à cette base de données via le Log4j JDBC Appender ont arrêté la journalisation. J'ai rebondi l'une des applications et il a repris la journalisation.
Donc, la réponse à cette question, par l'expérience, semble être No.
Si la base de données tombe en panne et revient en ligne, l'appendeur JDBC ne se reconnecte pas automatiquement.
modifier
JDBCAppender getConnection peut être annihilé à corriger.
JDBCAppender dans log4j 1.2.15 a le code suivant
protected Connection getConnection() throws SQLException {
if (!DriverManager.getDrivers().hasMoreElements())
setDriver("sun.jdbc.odbc.JdbcOdbcDriver");
if (connection == null) {
connection = DriverManager.getConnection(databaseURL, databaseUser,
databasePassword);
}
return connection;
}
donc si la connexion est non nulle, mais elle est cassée (besoins reconnectent) log4j retournera connexion interrompue à sa logique, et l'état d'exécution qui ne se connectant à DB échouera.
Pas une solution, mais une solution appropriée consiste à remplacer log4j avec logback: voir la réponse concernant: Log to a database using log4j
- 1. log4j se connectant à DB (dans un cluster)
- 2. Comment se reconnecter à une session slime/swank-clojure?
- 3. log4j RollingFileAppender se bloque dans WinNTFileSystem.getBooleanAttributes
- 4. Dans quelles circonstances vous voulez Rails à régler pas se reconnecter à MYSQL
- 5. Django comment se reconnecter après DatabaseError: délai de requête
- 6. Transmettre les propriétés à log4j avant qu'elles ne se chargent
- 7. configurer log4j pour se connecter au fichier personnalisé à l'exécution
- 8. Où se cache le jar log4j javadoc?
- 9. php remote se connecter à mysql db
- 10. Flex VideoDisplay reconnecter après idletimeout
- 11. log4j dans grails: comment se connecter au fichier?
- 12. ouvrir webim (Mibew Messenger) expirer, reconnecter
- 13. Comment se reconnecter à une connexion perdue quand il est perdu LINQ sql automagiquement
- 14. Forcer un utilisateur connecté à se reconnecter en invalidant sa session
- 15. Le programme ne peut pas se reconnecter à Firebird après une fin anormale
- 16. Comment se connecter à foxpro db à l'aide de XbaseJ
- 17. SqlRoleProvider ne parvient pas à se connecter à DB
- 18. Comment envoyer java.util.logging à log4j?
- 19. utilisateur peut se reconnecter dans IE après la déconnexion en appuyant sur le bouton retour
- 20. Log4J dans AS/400
- 21. exception Log4j dans Grails
- 22. Logger.DebugFormat dans log4j
- 23. Fileappenders multiples dans log4j
- 24. Horodatage incorrect dans log4j XMLLayout
- 25. Berkeley DB: comment cela se compare-t-il à MongoDB?
- 26. Comment se connecter à db en fonction de @ request.host value?
- 27. passer de log4j à Logback
- 28. PHP ODBC connect ne se connecte pas à Sybase db
- 29. besoin de se connecter à deux DB différentes de sqlplus
- 30. Configuration de log4j pour consigner le niveau ERROR dans une table DB
Alors maintenant, ma question est, comment travailler autour de cela. – MikeNereson
Peut-être substituer 'getConnection()' pour s'assurer que la connexion est valide. Sinon, créez une nouvelle connexion. – MikeNereson