项目中使用WebSphere并且使用其管理的连接池提供数据库连接,这是如果你使用的EJB中显示的提交了事务的话,那么就呢能抛出以下的异常:
java.sql.SQLException: DSRA9350E: 全局事务期间不允许操作 Connection.commit;
此异常的解决方法,只要将显示的提交事务去掉即可,参考代码如下:
发生错误的代码:
conn = DBUtil.getConnection();//从WebSphere中的连接池中得到数据库连接
conn.setAutoCommit(false);
CancelPurchaseHandler handler = new CancelPurchaseHandler();
handler.setConn(conn);
bto = handler.revokeApprove(bto);
result = (CheckResultDTO)bto.getObj();
if(result.getCheckResult() == CheckResultDTO.CHECK_FAILED){//业务条件判断
DBUtil.rollbackConn(conn);
}else{
DBUtil.commitConn(conn);
}
修改为:
......
//如果不满足业务条件则,抛出异常,导致事务回滚.
//如果满足,则事务自动提交.
if(result.getCheckResult() == CheckResultDTO.CHECK_FAILED){
throw new Exception("异常啦,快给我滚");
DBUtil.rollbackConn(conn);
}
分享到:
相关推荐
WebSphere环境下EJB编程 WebSphere环境下EJB编程 WebSphere环境下EJB编程 WebSphere环境下EJB编程
websphere教程,ejb教程,mybatis+spring整合实例教程
这本是介绍你如何在websphere上面部署ejb,和如何写ejb
\websphere部署EJB3.docx \websphere部署EJB3.docx \websphere部署EJB3.docx 使用的是 office2007
EJB与事务-详细描述EJB和事务,是javaEE初学者的好材料
ejb 2.0 websphere ibm
在实际项目的开发中,特别是web应用程序中,如Jsp,Servlet或EJB使用JDBC直接访问数据库中的...使用数据库连接池技术是解决上述问题的最常用的方法,在许多应用服务器(如 websphere, weblogic ,jBoss)中都提供了这种技术
EJB连接Oracle数据库 EJB连接Oracle数据库 EJB连接Oracle数据库 EJB连接Oracle数据库
WebSphere环境下EJB编程(IBM红皮书)
EJB 具有事务的处理属性
ejb的使用指南,我见过的最好的EJB书籍之一,希望能得到大家的喜爱
Tomcat中数据源配置连接池
关于ejb3.0 分布式事务的demo,涉及到相关persistence.xml 配置以及数据源配置。
如果运行一切正常,那么你会看到使用EJB 3.0组件与JPA技术层技术完成的Hello world演示应用。 注意:配置JBoss服务器和调试的动作参见readme.txt文档,有详细说明怎样匹配连接池,以及可能遇到的问题及解决办法。该...
如果JSP、Servlet或EJB使用JDBC直接访问数据库中的数据,每一次数据访问请求都必须经历建立数据库连接、打开数据库、存取数据和关闭数据库连接等步骤,而连接并打开数据库是一件既消耗资源又费时的工作,如果频繁...
java反射与EJBjava反射与EJBjava反射与EJBjava反射与EJBjava反射与EJBjava反射与EJB
j2ee1.3中实体Bean与之附带的数据库之间实现事务处理!
Struts2调用EJB异常项目包,出现的问题以及解决方案参见EJBStruts.zip中的说明.txt 以及博客 http://blog.csdn.net/icecream0/article/details/7167853