JiveJdon Community Forums
在线259人 Home | 论坛 | 培训咨询 | 精华 | 查搜 | 注册 | 登陆 |
首页 » 论坛 » J2EE/JavaEE/JEE/EJB/JSF等技术讨论
???en_US.forumThreadPrev.name??? 上一主题
Go back to the topic listing   返回主题列表
???en_US.forumThreadNext.name??? 下一主题
这个主题共有 19 回复 / 2 页 [ 1 2 下一页 ]  发表新帖子  回复该主题贴
j2eenb

发表文章: 8
注册时间: 2003年12月18日 15:23
给他发消息
J2EE里的事务一问(必须用EJB才能用JTA吗?) 发表: 2003年12月18日 15:28 回复
我们要使用容器的事务功能,一般都是在EJB(SESSION BEAN或ENTITY BEAN)
里写如下代码:
javax.transaction.UserTransaction tx = new InitialContext().lookup("javax.transaction.UserTransaction");
tx.begin();
......
tx.commit();

我想问的是,如果我不想用EJB,能不能在普通的BEAN里这样来
用事务呢?
因为我的应用是跨两个数据库,但我不想用EJB
我的APP SERVER是WEBLOGIC 8.1
banq

发表文章: 9114
注册时间: 2002年08月03日 17:08
给他发消息
Re: J2EE里的事务一问(必须用EJB才能用JTA吗?) 发表: 2003年12月18日 15:45 回复
EJB中不必写入事务语句,你之前在EJB中加入JTA用法是错误的。

用普通JavaBeans倒是应该写入JTA这条语句,但是请注意,事务自己处理是非常复杂,因为涉及Lock问题,会发生自己搞自己非常烦琐的问题,几乎现在全世界程序员中处理多个事务Lock问题的人不多。

你可以看看所有Web的开源代码,几乎看不到他们中有JTA语句,因为他们都不需要事务,如果你需要事务,又不想成为稀缺的程序员。

建议你还是使用EJB,因为它自动帮助你实现了事务。
j2eenb

发表文章: 8
注册时间: 2003年12月18日 15:23
给他发消息
Re: J2EE里的事务一问(必须用EJB才能用JTA吗?) 发表: 2003年12月18日 16:12 回复
你说“EJB中不必写入事务语句,你之前在EJB中加入JTA用法是错误的。”

如果我不用容器管理事务,那当然需要在EJB按照我的方法来处理事务。
而且,很重要的一点是,很多大项目,都是我这么写的,而不会用
容器来管理事务
包括我们现在给银行做的系统(1000多万的一个核心系统)

------------------------------------------------------------
有没有人研究过,不使用EJB,怎么来处理事务的问题呢?
我们很想用Spring,但不想把EJB弄到Spring里,又面临
事务处理的问题。
wwlhp@jdon.com

发表文章: 111
注册时间: 2003年06月03日 17:19
给他发消息
Re: J2EE里的事务一问(必须用EJB才能用JTA吗?) 发表: 2003年12月18日 17:29 回复
我想问一下,嵌套事务如何使用呢?能给一小段代码看看么?谢了先!
DennisLee

发表文章: 8
注册时间: 2003年11月27日 14:22
给他发消息
Re: J2EE里的事务一问(必须用EJB才能用JTA吗?) 发表: 2003年12月18日 17:37 回复
未必,我认为SUN的JTA只是OTS的一部分,如果你熟悉corba的OTS规范,使用其提供的API可以完成分布式对象的事物处理.但这样做的前提是你必须要手工提供中间件的事务服务,即SUN专为容器厂商提供的JTS API,如此以来
你的作为服务端的普通BEAN,(因为你不使用EJB容器),必须通过调用JTS API来提供事务,那么客户段的BEAN就可以调用JTA来启动/终止事务,但这样
做的后果和可靠性是显而易见的.我认为你还是使用中间件来完成事务
j2eenb

发表文章: 8
注册时间: 2003年12月18日 15:23
给他发消息
Re: J2EE里的事务一问(必须用EJB才能用JTA吗?) 发表: 2003年12月18日 18:02 回复
对,用中间件来完成这个工作是非常合适
问题是,我现在想确定的是,只用BEAN来完成的话
会有什么问题和限制

因为仅仅为了事务这么一个目的而去使用EJB的话,
我觉得是不是有点过了
j2eenb

发表文章: 8
注册时间: 2003年12月18日 15:23
给他发消息
Re: J2EE里的事务一问(必须用EJB才能用JTA吗?) 发表: 2003年12月18日 18:08 回复
因为,我觉得,既然事务是由容器来负责,
而不是由SESSION BEAN来负责的,那么,
我的普通BEAN,部署在容器上,为什么不能直接使用事务呢?
nitmithv

发表文章: 16
注册时间: 2003年10月26日 16:57
给他发消息
Re: J2EE里的事务一问(必须用EJB才能用JTA吗?) 发表: 2003年12月18日 20:13 回复
我觉得是可以的,在Sean C. Sullivan 的Advanced DAO programming一文中的JTA例子就没用EJB。这篇文章在IBM的网站上有。
sayor

发表文章: 11
注册时间: 2003年11月27日 13:40
给他发消息
Re: J2EE里的事务一问(必须用EJB才能用JTA吗?) 发表: 2003年12月19日 09:56 回复
hibernate中也可以使用JTA来控制事务,JTA并非EJB专有。
whoami13

发表文章: 6
注册时间: 2003年10月30日 12:50
给他发消息
Re: J2EE里的事务一问(必须用EJB才能用JTA吗?) 发表: 2003年12月19日 10:20 回复
使用容器管理事务的情况下,不能处理嵌套事务,所以只能智能自己在代码中控制,但是,好像j2ee中无法实现嵌套事务,不知我的理解对不对
nitmithv

发表文章: 16
注册时间: 2003年10月26日 16:57
给他发消息
Re: J2EE里的事务一问(必须用EJB才能用JTA吗?) 发表: 2003年12月19日 10:27 回复
EJB中不支持嵌套事务,这点在《Mastring EJB》和《The J2EE Tutorial》中都指出了。
j2eenb

发表文章: 8
注册时间: 2003年12月18日 15:23
给他发消息
Re: J2EE里的事务一问(必须用EJB才能用JTA吗?) 发表: 2003年12月19日 12:20 回复
不会吧,EJB中不支持嵌套事务,那它还有什么存在价值?
whoami13

发表文章: 6
注册时间: 2003年10月30日 12:50
给他发消息
Re: J2EE里的事务一问(必须用EJB才能用JTA吗?) 发表: 2003年12月19日 13:27 回复
谁知道在j2ee下如何实现嵌套事务呀
whoami13

发表文章: 6
注册时间: 2003年10月30日 12:50
给他发消息
Re: J2EE里的事务一问(必须用EJB才能用JTA吗?) 发表: 2003年12月19日 13:42 回复
我记得:ejb支持的是平面事务,而平面事务和嵌套事务是对立的,平面事务要求各个事务是独立的,在一个事务中是不能启动另一个事务的,所以,对于嵌套事务,如果采用j2ee的话,还要从应用逻辑上重新组织事务,将嵌套事务用平面事务代替才行
我的理解对吗
sayor

发表文章: 11
注册时间: 2003年11月27日 13:40
给他发消息
Re: J2EE里的事务一问(必须用EJB才能用JTA吗?) 发表: 2003年12月19日 13:43 回复
flat transaction大多数情况下已经够用了,就是说能够保证ACID。nested transaction只不过使得事务管理更加灵活和有效。
这个主题有 19 回复 / 2 页 [ 1 2 下一页 ]
???en_US.forumThreadPrev.name??? 上一主题
Go back to the topic listing   返回主题列表    返回页首  返回页首
???en_US.forumThreadNext.name??? 下一主题
热点TAG: AOP cache DDD EJB 集群 设计模式 Hibernate IOC JiveJdon OO RBAC Spring Struts
查询本论坛内 回复超过的热门帖子
快速发表回复
标题
 
粗体 斜体 下划线 插入图片 插入代码 插入url链接 插入附件
内容
 

解惑之道在J道 ,打造中国最具影响力的的企业软件社区
OpenSource JIVEJDON v3.0 Powered by JdonFramework Code © 2002-08 jdon.com

anti spam