这种场景下的事务如何控制?

10-03-19 javaRwx
              

下图是我目前一个项目中的应用场景和问题描述,请各位大侠指点!!

应用场景说明

              

1
javaRwx
2010-03-19 09:56

图片中红色字体部分正是我所遇见的问题

说明:如果大家看到的图片是个红叉,请右键点击显示图片即可(不知道是论坛的问题还是图片太大)。

[该贴被javaRwx于2010-03-19 10:03修改过]

banq
2010-03-19 10:26

架构搞得复杂,Spring + EJB是够复杂的。

无论你在Spring中还是在EJB的无态bean中使用事务,都属于JTA事务。statless session bean缺省是激活JTA事务的。

关键问题是:你的Spring使用的JTA事务场景要和EJB容器中事务场景一致,比如使用同一个JNDI源也许可以 。

如果不能合并JTA事务场景,也可以从设计上考虑合并一下,比如要么要EJB的无态Bean中的事务,要么完全使用Spring的事务,不过从你这个案例情况看,单单依靠Spring事务已经控制不住了,所以,就放弃这个业务的Spring事务,走向完全用EJB的无态Bean事务吧,效果都是一样。

另外,事务控制很好,会带来性能上的缺陷,看看"CAP定理",JTA事务和数据库事务是保证严格一致性,但是丧失可用性。

[该贴被banq于2010-03-19 10:37修改过]

javaRwx
2010-03-19 10:39

板桥大侠高见,有两点我不明白

1、为什么单单依靠Spring控制不住这种场景下的事务(我也测试过,发现的确不行),没有研究过用Spring代替EJB

2、你说的使用同一个JNDI源是指三个EJB服务使用同一个JNDI数据源吗?但是目前的情况是每个EJB都对应着自己的数据库啊

还请多指点!

congdepeng
2010-03-19 10:46

我不说话,我关注你们讨论

3Go 1 2 3 下一页