Нужны ли нам вложенные транзакции базы данных?

Я кодирую свой собственный слой данных, используя JDBC для доступа к базам данных SQL, и одним из основных компонентов является менеджер транзакций.

Я немного запутался, стоит ли поддерживать вложенные транзакции в этом компоненте. Пример кода вложенной транзакции выглядит следующим образом:

tx1.begin();
... // do something with tx1
    tx2.begin();
    ... // do something with tx2
    tx2.commit();
...
tx1.commit();

Во время моих прошлых экспериментов по разработке они мне никогда не были нужны, и я думаю, что они делают код более сложным. Но я не уверен, что они бесполезны или полезны. Можете ли вы привести несколько примеров, в которых требуется или, по крайней мере, выгодна вложенная транзакция? И каковы их плюсы и минусы?

Чтобы уточнить мой вопрос и объяснить, что я имею в виду под транзакцией, я вставил свой комментарий ниже:

Я использую JDBC. Таким образом, менеджер транзакций не зависит от базовой базы данных. Под транзакцией я имею в виду не-AutoCommit соединения JDBC. Менеджер транзакций возвращает объект транзакции с подключением не-autoCommit. Код клиента, использующий эту транзакцию, фиксирует и закрывает соединение, фиксируя объект транзакции.

Заранее спасибо.

0 ответов

Другие вопросы по тегам