java – 即使没有事务也可以将jboss中的连接检索到多个数据库
|
我们正在从JBoss 6升级到JBoss 7.我们的应用程序的性质每个客户都有一个单独的数据库实例,以及所有客户通用的核心配置数据库.我们经常有EJB代码,至少在一个调用中引用核心数据库加上个别客户的数据,甚至通过所有客户的一些后台进程. 在JBoss 6中,这是通过使用NOT_SUPPORTED事务属性设置方法来处理的.但是,JBoss 7抱怨有以下错误:
我们如何解决这个问题,而不必在单独的EJB调用和事务中将每个调用包裹到不同的数据库.有没有办法在EJB调用或类似的事情中实际关闭JBoss事务管理? 注意:在基于额外发现的奖励开始之后,此问题已被修改,以便将重点放在具体问题上,并删除被排除的其他可能性. 解决方法两个建议:考虑将数据源更新为XA等价物.这将解决您的所有问题.我怀疑你在这里受到阻碍? 更新: 我不建议启用多个单阶段资源,因为它会大大削弱您的应用程序的事务属性.但是如果要在JBoss 7中执行此操作,则需要修改standalone.xml并添加: <system-properties>
<property name="com.arjuna.ats.arjuna.allowMultipleLastResources" value="true"/>
</system-properties>
你现在拥有一个没有交易的系统.仍然会做什么,是警告你,如果你有启发式的结果. 我的建议仍然是使用XA数据源,如果可以的话. 更新2: 哦,如果有人来读这个,我想补充一点,如果你可以将代码分成不同的方法,与OP不同,我建议重构代码,并使用@TransactionAttribute(REQUIRES_NEW)来创建并行事务.这比打开多个1PC更好,尽管不如开启XA. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- Java Spring-Cache key配置注意事项介绍
- Java 正则表达式小例子
- 无法在Selenium Webdriver(java)中找到iframe
- Java – 异常在哪里和如何使用?
- java – Spring Meta-Annotations
- java – 为什么onNewIntent(Intent intent)方法被
- java – 套接字:BufferedReader readLine()块
- java-8 – Optional.ifAbsentThrow()?
- 垃圾收集 – JVM PrintGCApplicationConcurrentT
- java – 仿真网络断开连接以本地测试分布式应用程
