WSO2 ESB Распределенные преобразования
Я пытаюсь реализовать распределенные транзакции через два веб-сервиса SOAP с помощью WSO2 ESB v 4.5.1.
Я реализовал два отдельных веб-сервиса (каждый из которых имеет подключение к своим базам данных) и прокси-сервис, который связывается с обоими сервисами. Прокси-сервис содержит посредник Транзакции.
Насколько я понял, в этой версии ESB используется Atomikos (www.atomikos.com), а посредник Transaction - единственный способ управлять транзакциями.
Как настроить WSO2 ESB и Atomikos для использования распределенных транзакций? Я нашел единственный пример реализации распределенных транзакций. Это показывает простой случай, когда системные транзакции создаются самим ESB. В моем случае транзакции должны быть "переданы" (распространены) на внешний веб-сервис.
Есть ли пример распределенных транзакций через SOAP?
Любая помощь будет оценена.
3 ответа
Это не поддерживается Что вы можете сделать, это использовать последовательность ошибок и добавить логику отката внутри этой последовательности ошибок. Например, вы вызываете первый сервис, а затем происходит сбой второго вызова сервиса. Затем вы должны оказаться в последовательности ошибок, и в этой последовательности вы должны написать логику для отката вызова service1.
Я хотел бы получить больше информации о причине, почему "это не поддерживается".
AFAIK WSO2 использует Axis2 в качестве стека веб-службы, а Axis2 поддерживает транзакции WS-Atomic: http://wiki.apache.org/ws/StackComparison
Неужели Axis2 поддерживает транзакции WS-Atomic, но в WSO2 отсутствует что-то необходимое для его использования?
Это (транзакции через различные сервисы) возможно с коммерческой версией Atomikos - ExtremeTransactions.
Я не верю, что он включен в WSO2. Вы могли бы спросить WSO2, могут ли они это сделать или нет...
НТН