@gurinderu
java developer

Как отключить autocommit Oracle при разрыве соединения?

У меня возникла проблема.
Имеется приложение java, которое общается посредством jdbc с oracle db. В общем стандартный вопрос.
Имеется транзакция, в которой делается довольно много insert query. Так вот, во время транзакции случается обрыв соединения и oracle делает commit на текущее имеющееся состояние.

Как можно отключить данную функцию средствами jdbc?

И сразу конфликт документации.
По ссылке http://docs.oracle.com/cd/E16655_01/java.121/e1765... говорится следующее:
If the auto-commit mode is disabled and you close the
connection without explicitly committing or rolling back your
last changes, then an implicit COMMIT operation is run.

А по ссылке docs.oracle.com/cd/E11882_01/server.112/e40540/tra...
End of a Transaction
A transaction ends when any of the following actions occurs:
...
A client process terminates abnormally, causing the transaction to be implicitly rolled back using metadata stored in the transaction table and the undo segment.

По логике первая ссылка относится к jdbc, вторая к oracle. И commit, судя по всему, делает jdbc, но на практике выходит так, что commit все же делает Oracle, т.к. нет соединения с базой.
  • Вопрос задан
  • 3813 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Duke_Raven
Кажется вам требуется установить у соединения опцию
docs.oracle.com/javase/6/docs/api/java/sql/Connect...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы