У меня есть два приложения пружин A и B, каждое в отдельном файле EAR.Теперь я хочу позвонить из A в B и наоборот, может быть, даже A -> B -> A или более.
Звонки должны быть транзакционно безопасны .
Каков рекомендуемый подход?
Единственный способ сделать синхронную транзакцию - с двухсторонней фиксацией - вызовом от одного EAR к другому - это использовать удаленные EJB: (
Если это возможно в вашем случае, я бы лучшеПри асинхронном вызове с использованием JMS отправка сообщения будет связана с вашей транзакцией, но получатель не сможет откатить вашу транзакцию, как это было бы возможно при удаленном вызове EJB.
Единственный способ сохранить это в безопасности - это использовать транзакции JTA, управляемые контейнером. Spring поддерживает их через JtaTransactionManager, поэтому вы можете написать свою транзакционную логику так же, как и любые другие транзакции в Spring. Все источники данных должны управляться контейнером, а не приложениями.
JtaTransactionManager