Несколько одновременных подключений или подключений с разными строками подключения внутри одной транзакции в настоящее время не поддерживаются.

Я использую область транзакции. В этой области транзакций у меня есть соединение с базой данных mysql. Однако мне нужно будет открыть новое [еще одно] соединение MySQL с предыдущей областью транзакции.

Когда я это делаю, я получаю следующую ошибку Multiple simultaneous connections or connections with different connection strings inside the same transaction are not currently supported..

Это потому, что MySQL Server не поддерживает несколько распределенных транзакций. Есть ли что-то, что я должен изменить в коде или что-то, что я должен изменить на сервере?

Будет ли поддержка, если я использую описанный выше сценарий с обоими подключениями к SQL Server вместо сервера mysql?


person Saravanan    schedule 19.05.2011    source источник


Ответы (2)


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

Надеюсь это поможет

person Tudor Constantin    schedule 19.05.2011
comment
Спасибо за ответ. Позвольте мне просмотреть эту документацию, а затем оставить вам свой отзыв о том, как я работаю. - person Saravanan; 19.05.2011

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

Этот вопрос подразумевает, что MySql поддерживает XA.

Одна проблема, с которой вы можете столкнуться, заключается в том, что вам нужно работать в среде, способной обрабатывать транзакции XA. (фактически вы выполняете распределенную транзакцию между двумя базами данных, потому что используете два отдельных соединения) Я привык работать на сервере приложений Java EE, поэтому сервер действует как координатор транзакций, я не уверен, что произойдет в отдельной Java-программе.

person djna    schedule 19.05.2011
comment
Спасибо за ответ. Я смотрю на XA, как вы сказали. Я вернусь с подробностями. - person Saravanan; 19.05.2011