в mysql jdbc влияет ли автоматическая фиксация на все соединения? - PullRequest
1 голос
/ 28 января 2011

при использовании пула соединений, будет устанавливать автокоммит соединения = false повлиять только на это соединение?

если я закрываю это соединение без установки autocommit = true и получить новое соединение, будет ли политика этого соединения установлена ​​на autocommit = true?

Ответы [ 2 ]

1 голос
/ 28 января 2011

Ответ на этот вопрос будет следующим: «зависит от используемого пула соединений».

Однако, если бы я был пулом соединений, я бы восстановил состояние автоматической фиксации в соответствии с исходной конфигурацией.Я думаю, что другие пулы соединений будут делать то же самое.

0 голосов
/ 05 марта 2015

Тестовый сценарий:

  1. set autocommit = false
  2. использование транзакций
  3. закрыть соединение, не устанавливая его обратно в autocommit = true

Результат: когда это определенное соединение используется повторно, все равно имеет autocommit = false (для других новых соединений по умолчанию autocommit = true). Итак, как только я уничтожу это соединение на стороне базы данных и снова вызову мой код, только тогда пул даст мне новое соединение со значением по умолчанию autocommit = true.

Вывод: это влияет только на это соединение, но перед закрытием убедитесь, что вы вернули его в autocommit = true! (Это основано на реальном тестировании, а не на предположении)

Примечание: здесь также отмечается это поведение: http://www.coderanch.com/t/583969/JDBC/databases/Tomcat-connection-pool-auto-commit

Я использую JDBC с Tomcat7, Java 1.7, MySQL5.6, Connector / J 5.1.

...