У меня есть следующий сценарий:
У меня есть интерфейс-сервер, который прослушивает очередь и получает сообщения из «внешнего мира». Затем этот сервер вызывает «внутреннюю», служебную службу, которая, в свою очередь, вызывает другие службы и т. Д.
Эти службы могут находиться на разных компьютерах и могут быть кластеризованы.
Мне нужно, чтобы понятие транзакции распространялось на эти службы и машины.
Мой стек разработки включает в себя Spring (3.0.5) и JPA 2.0 (Hibernate в фоновом режиме) в среде J2SE.
Могу ли я добиться этого без сервера приложений? Предполагая, что я подключаю внешний JTA-менеджер транзакций (например, atomikos)
Мы решили использовать Spring по многим причинам, наиболее важными из которых были абстракции сервисов, интенсивный DI и возможность работать без тяжелого сервера приложений. Я знаю, что мы можем использовать spring на сервере приложений, но если кто-то порекомендует это, я бы хотел услышать, почему это нужно сделать, предполагая, что я могу предпочесть Spring и использовать весь сервер приложений.
Кстати, просто чтобы успокоить любого, кто читает этот пост: Да, мы думали о проблемных вопросах распределенной транзакции, но мы все еще думаем, что нам понадобится такая транзакция, так как это бизнес-логика сервиса, и она потребует быть на другой машине, так как некоторые службы будут находиться под большим давлением.
Заранее спасибо,
Еффий