Могу ли я создать поддержку нескольких транзакций базы данных на одном соединении? - PullRequest
1 голос
/ 14 января 2011

Я создал базу данных HyperSQL. Мне просто интересно, смогу ли я выполнить несколько транзакций на одном соединении. Я не хотел создавать новое соединение для каждой транзакции из-за накладных расходов, связанных с этим.

Глядя на некоторые похожие вопросы, было предложено создать пул соединений с базой данных, а затем заблокировать ожидание, когда оно станет доступным. Это работоспособное, но нежелательное решение.

Справочная информация (если это имеет отношение к ответу). Мое приложение создаст новый поток, когда поступит некоторый запрос. Этот запрос потребует транзакции базы данных. Затем через некоторое время эта транзакция будет совершена.

Любой совет приветствуется:)

Ответы [ 2 ]

2 голосов
/ 14 января 2011

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

1 голос
/ 05 апреля 2012

Абсолютно нет. каждая «транзакция» должна иметь начало, завершение или откат. Конечно, вы можете разделить одну транзакцию на несколько частей в одной строке исходной транзакции. не больше не меньше.

...