In MySQL JDBC wirkt sich Auto Commit auf alle Verbindungen aus?
-
26-10-2019 - |
Frage
Hat das Einstellen eines Verbindungspools bei der Verwendung eines Verbindungspools eine automatische Einstellung einer Verbindung nur diese Verbindung auf diese Verbindung auswirkt?
Wenn ich diese Verbindung schließe, ohne autocommit = true festzulegen und eine neue Verbindung zu erhalten, wird die Richtlinie dieser Verbindung auf autocommit = true festgelegt?
Lösung
Die Antwort wäre bis zu dem Punkt: "Hängt vom verwendeten Verbindungspool ab".
Wenn ich jedoch ein Verbindungspool wäre, hätte ich den Autokommit -Status gemäß der anfänglichen Konfiguration wiederhergestellt. Ich denke, dass andere Verbindungspools dasselbe tun würden.
Andere Tipps
Testszenario:
- Setzen Sie AutoCommit = false
- Verwenden Sie Transaktionen
- Schließen Sie die Verbindung, ohne sie auf autocommit = true einzustellen
Ergebnis: Wann Dies bestimmte Verbindung wird wiederverwendet, es hat immer noch autocommit = false (Andere neue Verbindungen haben das Standard -AutoCommit = true). Also, sobald ich töte Dies Verbindung auf der Datenbankseite und rufen Sie meinen Code erneut an, nur dann enthält mir der Pool eine neue Verbindung mit dem Standard -AutoCommit = true.
Schlussfolgerung: Es betrifft nur Dies Verbindung, aber stellen Sie sicher, dass Sie es vor dem Schließen auf autocommit = true einstellen! (Dies basiert auf realen Tests, nicht auf einer Annahme)
HINWEIS: Dieser Beahvior wird auch hier bezeichnet: http://www.coderanch.com/t/583969/jdbc/databases/tomcat-connection-pool-auto-commit
Ich benutze JDBC mit Tomcat7, Java 1.7, MySQL5.6, Connector/J 5.1.