#hibernate #spring #jax-ws #java-metro-framework #acid
#переход в спящий режим #spring #jax-ws #java-metro-framework #acid
Вопрос:
Наша архитектура состоит из веб-служб, разработанных по спецификации JAX-WS с использованием
Metro. Эти службы развернуты на одном сервере приложений Glass Fish как отдельные war
Файлы.Все веб-службы внутренне используют единую базу данных.Уровень datatacess реализован с использованием Hibernate, а Spring используется для реализации транзакций внутри службы. Теперь, когда мы хотим выполнить транзакцию, охватывающую несколько веб-служб, какие подходы возможны?
- Нужно ли нам использовать JTA или мы можем избежать этого?
- Нужно ли нам использовать спецификацию WS-AtomicTransaction, поддерживаемую Metro?
Ответ №1:
Я отвечаю на свой собственный вопрос, потому что до сих пор нет ответов. Однако будут оценены просмотры на том же. Я считаю, что лучшей архитектурой было бы рассматривать каждую веб-службу как отдельную и использовать WS-AtomicTransactions / WS-Coodrination для транзакций между веб-службами. Это также поможет, когда некоторые веб-сервисы необходимо развернуть в разных доменах glassfish или на разных серверах все вместе для повышения производительности или по каким-либо другим причинам. Внутренне эти службы JAX-WS Metro будут использовать JTA на glassfish для реализации 2PC. Однако это скрыто внутри реализации Metro
Випул Шах