关于ejb中用ejb的rollback问题

04-04-29 jody
关系如下

<ejb1>
	<ut.begin();>
		<ejb2>
			<ut.begin();>
			</ut.commit();>
		</ejb2>
		<其它操作>
	</ut.commit();>
	catch(其它操作的异常)
		<ut.rollback();>
</ejb1>
<p>

ejb2操作正常

当捕获到ejb1中的其它操作中的异常时。我希望能把ejb2的操作同时roolback掉。。。。可是这个操人不行。我该怎么办:(

廉价劳力
2004-04-29 08:50
概念混乱阿,你应该用一个Transaction而不是两个Transaction,仔细研究一下j2ee的transaction吧。

最简单的方法:把b1,b2全部设成container管理的事务,required。这样调用b1的方法,container自动帮你起一个transaction,b1调用b2时,b2会用当前的transaction。这样b2只要扔一个exception就把整个transaction取消了(你不用写rollback代码,container全帮你做了)。

huzhigang
2004-04-29 09:01
ejb2是独立启动一个事务嘛?还是作为ejb1启动事务的一部分?

廉价劳力
2004-04-29 09:04
ejb2作为ejb1启动事务的一部分

jody
2004-04-29 09:07
我按你的方法试试。。谢谢

等我试一下结果

猜你喜欢
2Go 1 2 下一页