容器管理的有状态会话bean。
当连接池最大连接个数设置成1的时候会有一个有趣的现象发生,如果一个事务没有执行完,另外一个事务就会发生无法获取DB连接的错误。
是不是jboss的事务处理是必须在事务提交以后他所占用的DB Connection才会被释放呢?
期待各位帮忙。
期待各位帮忙。
如果是这样的话,那么跨越多个资源的事务是怎么实现的呢?
期待达人能够早日解惑,或者告诉我到哪儿去找资料。
跨数据库事务可研究2PC,也就是两段事务,其实原理简单,使用很方便,这些JBoss都提供oracle-xa-ds.xml这类配置来实现,程序中只要通过显示或隐式调用(配置)即可。
因为之前的代码里看到了con.close(),然后在连接池的实现代码里应该是释放这个连接可以给其他使用的,但是如果连接真的被其他程序使用了,jdbc事务肯定是无法保证的。
从这个方面我想应该是JTA接管了连接的关闭和commit。但是还没有找到具体的相关的实现。
找到后就发上来了。