Я предполагаю:
- Под словом "соединение разорвано" я имею в виду, что dbms-client-driver сообщает вашему коду приложения, что соединение потеряно.
- у вас есть только одна СУБД, что означает отсутствие двухфазной фиксации.
Тогда:
Не имеет значения, используете ли вы sql-серверчерез WAN или LAN.Либо сделка сделана полностью, либо нет вообще.Это природа транзакций.
Так что, если соединение завершается до фиксации , сервер откатит все.Невозможно восстановить соединение на уровне приложения, чтобы завершить транзакцию.
Если соединение прерывается во время фиксации , то в зависимости от реализации и точного момента времени,транзакция может быть сохранена полностью или полностью отменена.
Вы можете быть абсолютно уверены, что все сохраняется, как предполагалось , как только коммит вернет к вашему коду.
Осторожно, это может привести к "разрыву соединения" после того, кактайм-аут, который может быть довольно длинным (несколько минут).В это время транзакции сохраняют все блокировки и могут замедлить работу всей системы.Эти тайм-ауты могут быть установлены на более длинные интервалы, если вы общаетесь через более медленную сеть.