Java 具有事务上下文的Spring远程服务

Java 具有事务上下文的Spring远程服务,java,spring,jakarta-ee,remoting,application-server,Java,Spring,Jakarta Ee,Remoting,Application Server,我有以下场景: 我有一个接口服务器,它监听队列并接收来自“外部世界”的消息。然后,此服务器调用“内部”、业务、服务,这些服务又调用其他服务等。 这些服务可以分别驻留在不同的机器上,并且可以为此进行集群。 我需要事务的概念来跨越这些服务和机器。 我的开发堆栈包括J2SE环境下的Spring(3.0.5)和JPA2.0(后台的Hibernate)。 我可以在没有应用服务器的情况下实现这一点吗?假设我插入了一个外部JTA事务管理器(例如atomikos) 我们选择使用Spring有很多原因,其中最重要


我有以下场景:
我有一个接口服务器,它监听队列并接收来自“外部世界”的消息。然后,此服务器调用“内部”、业务、服务,这些服务又调用其他服务等。
这些服务可以分别驻留在不同的机器上,并且可以为此进行集群。
我需要事务的概念来跨越这些服务和机器。
我的开发堆栈包括J2SE环境下的Spring(3.0.5)和JPA2.0(后台的Hibernate)。
我可以在没有应用服务器的情况下实现这一点吗?假设我插入了一个外部JTA事务管理器(例如atomikos)
我们选择使用Spring有很多原因,其中最重要的原因是服务抽象、密集的DI和在没有重型应用服务器的情况下工作的能力。我知道我们可以在应用程序服务器中使用spring,但如果有人推荐,我想听听为什么应该这样做,假设我可以使用spring并使用所有的应用程序服务器

顺便说一句,只是想让阅读本文的人放心:是的,我们已经考虑了分布式事务的问题,但是我们仍然认为我们需要这样的事务,因为这是服务的业务逻辑,并且需要跨机器,因为一些服务将承受很大的压力

提前感谢,

Ittai

我们在生产中使用Spring 3和Atomikos在ApacheTomcat和oracle数据库上进行分布式事务(xa),因此这对我们来说是一个非常有用的设置。看看atomicos spring集成示例:


我们最终将JBoss与Spring结合使用。
JBoss确实提供了所需的分布式事务,而Spring包含了所有DI等 我们仍然保留着春天,因为我们觉得它更干净、更舒适。

有可能我们本应该在jboss中使用CDI,但我们没有注意到这一点。

@t谢谢你的链接,但据我所知,这篇文章提到的是跨资源而不是跨机器的分布式事务,因此这与Mec无关。你能详细介绍一下你的设置吗?您是否跨机器使用分布式事务?或者只是跨同一台机器中的各种资源。前一种解决方案是我正在寻找的,在链接中我没有发现任何关于ITI的内容,我们为不同的数据库分发事务,而不是为不同的Tomcat分发事务。我们还没有使用JMS或AMQP进行通信,但是web服务和我们不依赖于那里的分布式事务。嗨,Ittai,你能更详细地描述一下你的设置吗?您正在使用REST服务吗?您的所有服务都在同一台机器(JBoss服务器)上吗?您是否正在使用JTA(UserTransaction)开始/提交/回滚。