JTA和EJB包容器!!!!

03-12-19 henry.t
不好意思,问一个概念的问题,JTA和平时写在JAVABEAN里面JDBC代码中的

set(false),commit(),rollback有什么关系??JTA我没有用过,只用过这种比较原始的,不知道关系,不知道区别,请说说。还有,原来我还以为JTA只是EJB容器提供的接口,实现它必须通过容器,就象EJB中,由我们写BEAN里面的逻辑,和部属描述,还有远程接口,由容器来实现远程接口一样,现在看来,我是不是错了???????我刚才看了WEBLOGIC文档里面对JTA的描述:“JTA给开发者一个渠道来使用WEBLOGIC里面强大的事务管理器,”也就是说,没有WEBLOGIC(或者其它EJB包容器),就不能使用JTA,刚才在论坛里面看到一个帖子,大家好像说在一般的JAVABEAN里面也可以使用JTA,这个不是矛盾了吗???????请回答我上面每一个问号,谢谢!!!!!!!!!!!!!!!!!!

henry.t
2003-12-21 21:45
不会不知道吧,请指教啊

henry.t
2003-12-22 23:55
嘿~~~~!HELLO~~~~~~~~~~~!ANYBODY???????

有人吗?(回声)吗~吗~吗~吗~吗~

各位大哥大嫂,你们~~~~~~~

tzngvi
2003-12-23 18:01
这个问题一定要顶!!

汪汪
2003-12-24 08:54
举个例子给你们看:

xxtrasction.begin

...

期间操作多个数据源(比如是数据库)

jdbc1

jdbc2

...

xxtrasction.commit //那么此时,jdbc1,2的数据库操作就全部commit了

就是说,J2EE的事务是针对一个流程的,流程期间的所有数据源操作都纳入一个事务,它的commit或者rollback是针对流程期间的所有数据源。

但真正的commit或者rollback动作最终还是依靠数据源(如JDBC)自己的API,这个由容器来调用与使用者无关。

henry.t
2003-12-24 22:26
怎么觉得答非所问??不过还是谢谢回答!!!没有WEBLOGIC之类的包容器,一般的JAVABEAN怎么用?这个事务服务不是包容器提供的吗???????

jxb8901
2003-12-25 09:05
JTA主要用于分布式的多个数据源的两阶段提交的事务,而JDBC的Connection提供的单个数据源的事务; 后者因为只涉及到一个数据源,所以其事务可以由数据库自己单独实现, 而JTA事务因为其分布式和多数据源的特性, 不可能由任何"一个"数据源实现事务, 因此JTA中的事务是由"事务管理器"实现的,它会在多个数据源之间统筹事务,具体使用的技术就是所谓的"两阶段提交", 一般JTA事务都是用于EJB中(因为EJB本身也是分布式的), 所以一般的应用服务器都有自己的事务管理器用来管理JTA事务,注意这并不表示EJB容器有管理事务的功能; 事实上也有单独的事务管理器比如开源的Tyrex. 如果只用Tomcat做应用服务器的话是不能使用JTA事务的;

以上是我个人的理解,不对的地方请高手指正!

汪汪
2003-12-25 11:25
兄弟,我的例子中那个xxxtrasanction以及它的相关操作(begin,commite)都是由容器实现的呀(即JTA)。没有容器(事务管理器)在后台服务一切都免谈三

starfeng
2003-12-25 15:14
有jts的地方就可以用jta,所以只要你的bean所在的环境中有jts就可以

cats_tiger
2003-12-26 13:47
JTA是由容器提供的,但是开发人员可以用JTA控制事务(BMP)。

在容器管理事务中,开发人员在EJB描述项中声明容器如何管理事务

猜你喜欢