EJB事务管理2--bug修改记
来源:互联网 发布:青岛知行国际靠谱吗 编辑:程序博客网 时间:2024/05/03 19:45
其实上一篇《EJB事务管理--bug修改记》还有问题,链接如下http://blog.csdn.net/lele2426/article/details/8848645点击打开链接
架构EJB+IBATIS+JBOSS
主程序调用BeanA,BeanA开始事务,并调用BeanB和BeanC,提交事务。
将jboss数据库连接池设为一条连接,BeanA,BeanB,BeanC均使用EJB Bean管理事务方式,执行没问题,但是无法手动回滚事务。
将jboss数据库连接池设为n条连接,BeanA为Bean管理事务方式,BeanB,BeanC为容器管理方式,正常,且可以手动回滚事务。但是如果连接为一条则报错。
日后再仔细研究事务怎么回事,理解着可能嵌套Bean事务可以通过容器事务管理方式可以传递下去,如果父子Bean都是Bean管理,虽然通过UserTransaction可以使用一条数据库连接,但是子Bean开始的时候为自动提交,所以在父Bean里无法手工回滚。
其中ibatis事务管理记录如下。在ibatis里事务方式有三种。在sql-map-config.xml中
<transactionManager commitRequired="true" type="EXTERNAL">
<property name="DefaultAutoCommit" value="false"/>
<property name="SetAutoCommitAllowed" value="false"/>
<dataSource type="JNDI">
<property name="DataSource" value="${dataSource}" />
<property name="context.java.naming.factory.initial" value="${java.naming.factory.initial}" />
<property name="context.java.naming.factory.url.pkgs" value="${java.naming.factory.object}" />
<property name="context.java.naming.provider.url" value="${java.naming.provider.url}" />
</dataSource>
</transactionManager>
transactionManager元素ibatis内置的type值有JDBC,JTA,EXTERNAL。EXTERNAL表示事务管理器由应用程序负责,而不是ibatis,本架构中指有EJB自己控制。
commitRequired属性表示连接释放前必须提交或者回滚
property表示配置transactionManager配置项
dataSource表示配置数据源工厂,可以是JNDI,DBCP,SIMPLE
- EJB事务管理2--bug修改记
- EJB事务管理--bug修改记
- ejb事务管理
- EJB事务管理
- ejb事务管理
- 带你走进EJB--事务管理(2)
- EJB 的事务管理
- EJB 3 事务管理探讨
- Spring与EJB事务管理
- EJB事务管理服务!!!
- EJB---->事务管理服务
- 用EJB进行事务管理
- JavaEE – JPA(2):EJB中的事务管理
- EJB 3 事务管理探讨 收藏
- 带你走进EJB--事务管理
- 带你走进EJB--事务管理
- JavaEE:glassfish EJB bug
- EJB系列(三)——EJB事务管理
- 转载记录一下,openssl自签名证书
- 开源JAVA爬虫crawler4j源码分析 - 1 开个头
- ArcGIS产品体系
- tomcat编码乱码问题
- ZOJ 2545 Factstone Benchmark
- EJB事务管理2--bug修改记
- Android eclipse中程序调试
- 严重: Exception starting filter struts2 java.lang.reflect.InvocationTargetException
- head first 设计模式
- 电脑运行常见命令
- Linux 内存管理
- 提醒软件【送给她】——如果工作时间长了,提醒休息,休息时长可设置,单位是秒,生效时段可设置
- mac php环境搭建
- iOS 项目名称修改