Что происходит при прохождении фиксации транзакции SQL, но тайм-ауты / сбои клиента - PullRequest
1 голос
/ 01 июля 2019

Каково ожидаемое поведение SQL, если транзакция фиксируется в базе данных, она успешно записывается в базу данных, но клиент каким-то образом дает сбой (время ожидания, проблема с сетью), и окончательная информация о том, что транзакция зафиксирована, никогда не достигаетклиент.Итак, окончательное состояние: транзакция зафиксирована, а клиент отключен или каким-то необычным образом завершился неудачей.Оставит ли это базу данных в грязном состоянии, когда клиент считает, что транзакция не зафиксирована, или SQL гарантирует, что если эта информация не достигнет клиента, транзакция будет прервана?

1 Ответ

0 голосов
/ 01 июля 2019

Если вы явно не фиксируете его при выполнении, он откатывается. По крайней мере, для баз данных Oracle, я думаю, другие базы данных SQL делают то же самое.

Если вы явно фиксируете и выполняете его, и ваша клиентская программа аварийно завершает работу или что-то еще до того, как она возвращает результат, это не имеет большого значения, так как это сейчас находится в базе данных, а не на клиентском компьютере. Вы просто перезапустите свою клиентскую программу и просто увидите там результаты вашего запроса.

Источники : https://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_4010.htm https://docs.oracle.com/cd/B19306_01/server.102/b14220/transact.htm#CNCPT016

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...