2014-08-28 11 views
1

在JBoss中7,我有以下的配置值java.sql.SQLException:有管理的交易過程中不能犯

<datasource jndi-name="java:jboss/env/esilicon/vms/OracleDBPoolNonXA" pool-name="ExampleDS"> 
    <connection-url>jdbc:oracle:thin:@erptstdb.sc.kaka.com:14100:ERPTST</connection-url> 
    <driver>XAOracleJDBCDriver</driver> 
    <pool> 
     <min-pool-size>10</min-pool-size> 
     <max-pool-size>20</max-pool-size> 
     <prefill>true</prefill> 
    </pool> 
    <security> 
     <user-name>apps</user-name> 
     <password>apps</password> 
    </security> 
</datasource> 
<drivers> 
    <driver name="XAOracleJDBCDriver" module="oracle.jdbc"> 
     <driver-class>oracle.jdbc.driver.OracleDriver</driver-class> 
    </driver> 
</drivers> 

在orther類,我有方法來獲取數據源的連接

public static Connection getNonXAConnection() { 
    try { 
     InitialContext context = new InitialContext(); 
     DataSource dataSource = (DataSource)context.lookup(JNDILookup.PURE_CONNECTION_JNDI); 
     return dataSource.getConnection(); 
    } catch (Exception e) { 
     e.printStackTrace(); 
     logger.fatal(e.getMessage(), e.getCause()); 
    } 
    return null; 
} 

當我犯這個連接

java.sql.SQLException: You cannot commit during a managed transaction! 
at org.jboss.jca.adapters.jdbc.BaseWrapperManagedConnection.jdbcCommit(BaseWrapperManagedConnection.java:981) 
at org.jboss.jca.adapters.jdbc.WrappedConnection.commit(WrappedConnection.java:757) 

我只是想獲取連接,並執行一些存儲發生錯誤過程,並finnaly提交此連接。請幫助我

回答

0

我在standalone.xml文件中指定了不正確的遠程處理地址時發生了此錯誤。該值通常應:

<socket-binding name="remoting" port="4447"/> 

此值應之前被設置爲端口地址任何偏移使用中的啓動腳本的-Djboss.socket.binding.port偏移 = xxx選項施加。

1

使用anotation這樣的:

@TransactionAttribute(TransactionAttributeType.SUPPORTS) 
public class SchedulerBean { 

我面臨着石英同樣的問題,能夠解決這樣的。