gpt4 book ai didi

java - 获取 JDBC 连接时出错 : Could not enlist in transaction on entering meta-aware object

转载 作者:搜寻专家 更新时间:2023-11-01 03:14:01 25 4
gpt4 key购买 nike

我在获取 EJB SessionBean 中的 JDBC 连接时遇到问题。错误是:

org.jboss.util.NestedSQLException: Could not enlist in transaction on entering meta-aware object!; - nested throwable: (javax.transaction.SystemException: java.lang.Throwable: Unabled to enlist resource, see the previous warnings.

我以为会发生这种情况,因为我已经有一个来自不同数据源的开放连接,所以我配置了一个 XA 数据源 来避免事务问题,但它根本不起作用,所以我没有'知道我的代码是否做错了什么。在这里:

  try 
{
Properties p = new Properties();
p.put(Context.INITIAL_CONTEXT_FACTORY,"org.jnp.interfaces.NamingContextFactory");
p.put(Context.PROVIDER_URL,"jnp://localhost:11099");
p.put("java.naming.factory.url.pkgs", "org.jboss.naming");

InitialContext ic = new InitialContext(p);

DataSource dataSource = (DataSource)ic.lookup("java:/jdbc/etlreportservices");

return dataSource.getConnection();
}
catch(Exception e)
{
e.printStackTrace();
}

调用dataSource.getConnection()时抛出异常。

最佳答案

可以试试,对于旧的 Jboss-es:/server/all/conf/jbossjta-properties.xml

<properties depends="arjuna" name="jta">
<property name="com.arjuna.ats.jta.allowMultipleLastResources" value="true"/>
</properties>

对于新的:standalone\configuration\standalone.xml(或其他你使用的)

<system-properties>
<property name="com.arjuna.ats.arjuna.allowMultipleLastResources" value="true"/>
</system-properties>

关于java - 获取 JDBC 连接时出错 : Could not enlist in transaction on entering meta-aware object,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3826974/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com