quality@glassfish.java.net

回复: GF v2ur2 -----EJBs Transaction Manage Problem When Networksbetween fail to connect.

From: dinghy <dingis_at_qq.com>
Date: Thu, 27 Nov 2008 22:07:29 +0800

Thanks ~~Jim
 Today I got the logs file from QQ-group-47140531.
 local logs and remote logs are in the zip file,may it be useful~~
  
 ------------------ 原始邮件 ------------------
  发件人: "Jim Jiang"<jj156416_at_sun.com>;
 发送时间: 2008年11月23日(星期天) 晚上11:01
 收件人: "quality"<quality_at_glassfish.dev.java.net>; "isvsupport"<isvsupport_at_sun.com>; "dingis"<dingis_at_qq.com>;
 
 主题: Re: GF v2ur2 -----EJBs Transaction Manage Problem When Networksbetween fail to connect.

  
 Hi Dinghy,

I understand it is the transaction problem for the ejb on different
server when the network is broken.
If you could provide the detail log info, that will be helpful.

Thanks,
Jim

dinghy wrote:
>
> This Problem is from a friend in our QQ group[glassfish 47140531]. The
> ejb version is 3.0
>
> Generally,here are two seperate Apps, as A on A_SERVER and B on B_SERVER ,
>
> *EJB_A* needs to remotely call the* EJB_B* to fulfil some
> DataBase-commands on *B_SERVER*.
>
> At the most time,if any error or Time_Out happens on A or
> B,transaction will roll back.
>
> But when EJB_A is calling EJB_B,
>
> if the network between A and B fails to connect,
>
> EJB_B will wait until all the tables in B_SERVER are deadly locked,and
> then Transaction Timeout seems useless....
>
> 大概来说,就是两个相互独立的系统 A 和 B ,A 中的 ejb_a 负责远程调用 B
> 中 的ejb_b来执行一些 B 中的本地数据库操作。
> 正常的情况下两边任何一边出错,或者操作超时,都会进行回滚。
> 但当 ejb_a 调用 ejb_b 的期间,网络中断的话, ejb_b 会一直等待导致 B 数
> 据库中相应的表死锁,这时事务超时就形同虚设了。
>