rfd*_*ers 5 java jboss jndi jdbc ejb-3.0
我在获取JDBC连接时遇到问题EJB SessionBean.错误是:
org.jboss.util.NestedSQLException:无法在输入元感知对象时登记事务! - 嵌套throwable:(javax.transaction.SystemException:java.lang.Throwable:无法登记资源,请参阅先前的警告.
我认为这种情况发生了,因为我已经有一个来自不同数据源的开放连接,所以我配置了一个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();
}
Run Code Online (Sandbox Code Playgroud)
调用时抛出异常dataSource.getConnection().
小智 6
可以尝试,对于旧的Jboss-es:/server/all/conf/jbossjta-properties.xml
<properties depends="arjuna" name="jta">
<property name="com.arjuna.ats.jta.allowMultipleLastResources" value="true"/>
</properties>
Run Code Online (Sandbox Code Playgroud)
for new:standalone\configuration\standalone.xml(或其他你使用的)
<system-properties>
<property name="com.arjuna.ats.arjuna.allowMultipleLastResources" value="true"/>
</system-properties>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10959 次 |
| 最近记录: |