Атомарные транзакции через веб-сервисы, расположенные на одном сервере с использованием одной базы данных - PullRequest
4 голосов
/ 15 апреля 2011

Наша архитектура состоит из веб-сервисов, разработанных по спецификации JAX-WS с использованием

Metro. Эти сервисы развернуты на одном сервере приложений Glass Fish как отдельная война

файлы. Все веб-сервисы внутренне используют одну базу данных. Слой обработки данных реализован с использованием Hibernate, а Spring используется для реализации транзакций внутри сервиса. Теперь, когда мы хотим сделать транзакцию, которая охватывает несколько веб-сервисов, какие возможны подходы?

  1. Нужно ли использовать JTA или мы можем избежать того же?
  2. Нужно ли нам использовать спецификацию WS-AtomicTransaction, поддерживаемую Metro?

1 Ответ

0 голосов
/ 18 апреля 2011

Я отвечаю на свой вопрос, потому что до сих пор нет ответов. Однако оценят взгляды на то же самое. Я считаю, что лучшая архитектура будет рассматривать каждый веб-сервис как отдельный и использовать WS-AtomicTransactions / WS-Coodrination для транзакций через веб-сервисы. Это также поможет, когда некоторые веб-службы необходимо развернуть в разных доменах Glassfish или на разных серверах в целом для повышения производительности или по другим причинам. Внутренне эти службы JAX-WS Metro будут использовать JTA на glassfish для реализации 2PC. Однако это скрыто внутри реализации Metro

Випул Шах

...