当前位置: 首页 > 面试题库 >

检索jboss中与多个数据库的连接时出错,即使没有事务也是如此

郝永思
2023-03-14
问题内容

我们正在从JBoss
6升级到JBoss7。我们的应用程序的性质是每个客户都有一个单独的数据库实例,以及所有客户都共有的核心配置数据库。我们经常有EJB代码,它将在一次调用中至少引用核心数据库以及单个客户的数据,甚至是遍及所有客户的一些常规后台流程。

在JBoss 6中,通过使用NOT_SUPPORTED事务属性设置方法可以毫无问题地进行处理。但是,JBoss 7对此抱怨有以下错误:

ARJUNA012140:不允许添加多个最后的资源。尝试添加LastResourceRecord(XAOnePhaseResource(LocalXAResourceImpl
@ 74bec54d [connectionListener = d3ce980 connectionManager = 25b47a05warned
= false currentXid = ])),但是已经具有LastResourceRecord(XAOnePhaseResource(LocalXAResourceImpl
@ 518d0191 [connectionListener = 1a05d94a currentid = false = ]))

我们如何解决此问题而又不将对不同数据库的每个调用包装在单独的EJB调用和事务中。有没有一种方法实际上可以在EJB调用或类似方法中关闭JBoss事务管理?

注意:悬赏金基于其他发现而被修改后,此问题已被修改,以使重点更加突出于特定问题并消除其他被排除的可能性。


问题答案:

好吧,事实证明,与JBoss6不同,就检索数据源的验证逻辑而言,NOT_SUPPORTED事务仍然是事务。

解决此问题的方法是使整个EJB成为bean管理的事务:

@TransactionManagement(TransactionManagementType.BEAN)

不幸的是,这有时会限制灵活性,因为有时您宁愿按方法控制此方法,但解决方法并不太麻烦。



 类似资料:
  • 错误:.错误:在function.module._resolveFilename(module.js:336:15)在function.module._load(module.js:278:25)在module.require(module.js:365:17)在require(module.js:384:17)在object处找不到模块“../build/release/oracle_bindi

  • 我们想要自己的db连接配置而不是使用JNDI,但同时,我们也想使用DataSource而不是使用Drive verManager,怎么做?

  • 我正在开发一个查询多个数据库的监控插件。我想使用HikariCP来保持连接打开,但我不知道如何实例化连接池。 HikariCP是否只使用一个池来存储多个数据库?或者一个数据库只有一个池,我的责任是实例化我将使用的数据库中的尽可能多的池。

  • 问题内容: 我在本地计算机上使用elasticsearch。数据目录的大小只有37MB,但是当我查看日志时,可以看到: [2015-05-17 21:31:12,905] [WARN] [cluster.routing.allocation.decider] [Chrome]高磁盘水印在[h9P4UqnCR5SrXxwZKpQ2LQ]上超过了[10%] [Chrome]免费:5.7gb [6.1%

  • 从bugu-mongo 2.11版本开始,支持连接到多个数据库。 在前面的示例代码中,我们都只是连接到一个数据库: //默认的数据库连接 BuguConnection conn = BuguFramework.getInstance().createConnection(); conn.setHost("192.168.0.100"); conn.setPort(27017); conn.setU

  • 我是php的初学者,对于一个项目,我想把我和数据库连接起来,但问题是: 我需要4个变量: 当我这样做时: 有两个错误: 警告:mysqli::mysqli():php_network_getaddress:getaddrinfo失败:第21行/home/ubuntu/workspace/index.php中的名称或服务未知 而且 警告:mysqli::mysqli():(HY000/2002):p