Nous avons un pool de connexions à la base de données (java JDBC). Chaque fois que nous passons à la caisse, nous effectuons d'abord une annulation de connexion préemptive afin d'éviter les exceptions de connexion. S'il vous plaît ignorer l'analyse de rentabilisation. Du point de vue technique, est-ce que la connexion JDBC ralentit beaucoup les performances des applications (puisque notre application est une entreprise de seconde guerre mondiale)?Java, pool de connexions JDBC, restauration de la connexion JDBC
Répondre
Je ne comprends pas pourquoi les connexions provenant directement d'un pool de connexions doivent être annulées. Leur état doit être inactif sinon vous ne seriez pas en mesure de les obtenir de la piscine ?!
Les transactions ont une influence sur les performances. Donc, s'il y a des transactions qui peuvent être annulées, il peut y avoir une requête qui ne peut pas être exécutée parce que la transaction pendante les bloque. Par conséquent, si votre application est critique dans le temps, vous devriez investir du temps pour optimiser votre code. Utilisez uniquement les transactions où vous devez.
Il n'existe pas d'annulation de connexion. Peut-être que vous vouliez dire une annulation de transaction. Vous ne devez jamais revenir en arrière sauf si vous avez l'intention de perdre les modifications apportées à la base de données dans la transaction, et vous ne devez jamais valider à moins d'avoir l'intention de valider toutes les modifications apportées à la transaction. Cela dit, je ne comprends pas le terme «nous faisons d'abord une annulation de connexion préemptive pour éviter les exceptions de connexion» et pourquoi vous le feriez en premier lieu. En supposant que vous faites référence à l'invocation de la méthode Connection.rollback()
, je considère que c'est une mauvaise pratique. Cela entraînerait une perte de performance, car il nécessite un appel réseau, et oblige la base de données à rejeter l'état de la transaction associée (ce qui n'a aucun sens dans ce scénario, car aucun travail n'a encore été fait). Si vous souhaitez éviter les exceptions impliquant une connexion morte extraite d'un pool de connexions, vous devez configurer le pool pour vérifier si la connexion n'est pas périmée (généralement en exécutant une instruction SQL de test) avant de renvoyer la connexion à l'application. Une fois que l'application a acquis la connexion, elle ne doit pas conserver la connexion après qu'elle n'en a plus besoin; l'application devrait idéalement retourner la connexion à la piscine. Si vous observez la présence de l'objet de connexion, la connexion physique sous-jacente n'est pas disponible pour d'autres demandes et peut en fait être fermée par un pare-feu configuré pour fermer les connexions actives au-delà d'une certaine durée.
Totalement d'accord avec le mana.
Vous "extrayez" une connexion d'une piscine, puis vous la manipulez puis vous la rendez à la piscine, une fois que vous avez terminé.
Jetez un coup d'œil à la logique de JBoss Connection Pooling, ou allez simplement avec un package de pool de connexions de production.
Il y a une discussion à Connection pooling options with JDBC: DBCP vs C3P0
La manière appropriée pour valider une connexion en provenance de la piscine est d'utiliser un validation query. Si la restauration est due au fait que quelqu'un a peur qu'une connexion "sale" puisse être renvoyée au pool, vous devez utiliser un real resource management framework.
- 1. Pool de connexions JDBC
- 2. pool de connexion JDBC glassfish
- 3. Comment utiliser le pool de connexions JDBC dans Webservice Java de restauration?
- 4. Utilisation incorrecte du pool de connexions JDBC
- 5. Surveillance de pool de connexion JDBC GlassFish
- 6. Problème de pool de connexion jdbc AS400
- 7. Java JDBC connexions et Oracle
- 8. Pool de connexions MySQL et JDBC: instructions non fermées
- 9. Quel est le problème avec mon pool de connexions JDBC?
- 10. Comment forcer la réutilisation des connexions dans le pool jdbc?
- 11. pool de connexion pour une connexion propriétaire api (non jdbc)
- 12. Source de données de surveillance Weblogic (pool de connexion Jdbc)
- 13. les meilleures pratiques du pool de connexions Spring JDBC
- 14. c3p0 acronyme origine - nom de pool de connexions jdbc
- 15. Java utilisant JDBC - Trop de connexions?
- 16. Java JDBC Connexion ClassNotFoundException Erreur
- 17. différence de pool de connexion, et JNDI jdbc
- 18. Tomcat jdbc connexion pool changements dans
- 19. Java JDBC Connexion Formulaire
- 20. connexion Java JDBC état
- 21. configurer l'application Grails pour utiliser le pool de connexions JDBC
- 22. Problème de connexion JDBC
- 23. Tomcat JDBC Connection Pool - Les connexions sont bloquées sur
- 24. Vider les pools de connexions JDBC
- 25. Les connexions mortes sont renvoyées au pool de connexions JDBC - Glassfish 3.1.2.2
- 26. Pools de connexions JDBC compatibles JTA
- 27. Java JDBC connexion à MySQL
- 28. Connexion de la connexion à la connexion JDBC par thread
- 29. Le pool de connexions JDBC manque de connexions lorsque Context reload = "true" est activé dans Tomcat
- 30. Configuration jdbc-pool (tomcat 7)