广嵌科技  广嵌教育  广嵌威客  English  
 
首页 > 软件开发 > J2EE > J2EEJTA和数据库的transaction研究
J2EEJTA和数据库的transaction研究
来源:http://www.rdxx.com 作者: 时间:2007-05-18 发布人:admin
  研究有结果了,以下是我做了一些测试得出的结论(Sybase+Weblogic+Tx Data Source):


方法一:

  1、设置方法为Container-Tracnsaction,方法的trans-attribute为Required
  2、几个方法调用的SP创建前先set chained on,同时SP里是可以使用Tracnsaction的
  3、此方法调用的几个方法使用同一Connection,Connection的setAutoCommitCommit使用默认设置或设为false,
  若设为true,则抛出异常:Cannot set auto commit to "true" when in distributed transaction


方法二:
  1、设置方法为Container-Tracnsaction,方法的trans-attribute为Required
  2、几个方法调用的SP创建前先set chained on,同时SP里是可以使用Tracnsaction的
  3、此方法调用的几个方法使用各自的Connection,各方法Connection的setAutoCommitCommit使用默认设置;
  若设为true,则抛出异常:Cannot set auto commit to "true" when in distributed transaction;
  若某方法设为false,同时在EJB的方法描述里把此方法的设置方法为Container-Tracnsaction,方法的trans-attribute
  为Required, 则执行到此方法时会抛出异常:SET CHAINED command not allowed within multi-statement transaction.


方法三:
  1、设置方法为Container-Tracnsaction,方法的trans-attribute为Required
  2、同时各方法为Container-Tracnsaction,方法的trans-attribute为Required
  3、几个方法调用的SP创建前先set chained on,同时SP里是可以使用Tracnsaction的
  4、此方法调用的几个方法使用各自的Connection,各方法Connection的setAutoCommitCommit使用默认设置;
  若设为true,则抛出异常:Cannot set auto commit to "true" when in distributed transaction;
  若设为false,抛出异常:SET CHAINED command not allowed within multi-statement transaction.


·下一条:使用异步Servlet扩展AJAX应用程序

评论
发布者 标题 发布日期
暂没有任何评论
以下发言只是广嵌网会员个人意见,非本网立场 查看更多评论

发表评论
·尊重网上道德,遵守中华人民共和国的各项有关法律法规。
·承担一切因您的行为而直接或间接导致的民事或刑事法律责任。
·本站管理人员有权保留或删除其管辖留言中的任意内容,本站有权在网站内转载或引用您的评论。
·参与本评论即表明您已经阅读并接受上述条款。
标题:
发布者:
内容:
验证码:

相关信息
Copyright ©2005-2007 广东省嵌入式软件公共技术中心.All Rights Reserved.版权所有 复制必究
客户服务支持:020-32068395-832 24小时服务热线:13631411558
技术支持与报障:gdesc@midea.com.cn 020-32068395-807/809
粤ICP备05104135号