I have Java/HIbernate apps. When run in Eclipse/JAR file with this, it works fine.
Code:
public void saveToDatabase() throws Exception
{
Transaction txReporting = null;
try{
txReporting = sesReporting.beginTransaction();
...
txReporting.commit();
} catch (Exception e) {
if (txReporting != null) {
// Something went wrong; discard all partial changes
txReporting.rollback();
// nested try-catch loop to catch all errors
try{
// for logging purpose
txReporting = sesReporting.beginTransaction();
...
txReporting.commit();
} catch (Exception ex) {
throw ex;
}
}
throw e;
}
}
But when I throw this into JBoss, I hit:
Quote:
2008-07-23 17:46:04,291 DEBUG [org.hibernate.util.JDBCExceptionReporter] Cannot open connection [???]
org.jboss.util.NestedSQLException: Transaction is not active: tx=TransactionImple < ac, BasicAction: acc550a:c94:4886fda0:41 status: ActionStatus.ABORT_ONLY >; - nested throwable: (javax.resource.ResourceException: Transaction is not active: tx=TransactionImple < ac, BasicAction: acc550a:c94:4886fda0:41 status: ActionStatus.ABORT_ONLY >)
...
Caused by: javax.resource.ResourceException: Transaction is not active: tx=TransactionImple < ac, BasicAction: acc550a:c94:4886fda0:41 status: ActionStatus.ABORT_ONLY >
at org.jboss.resource.connectionmanager.TxConnectionManager.getManagedConnection(TxConnectionManager.java:304)
at org.jboss.resource.connectionmanager.BaseConnectionManager2.allocateConnection(BaseConnectionManager2.java:396)
at org.jboss.resource.connectionmanager.BaseConnectionManager2$ConnectionManagerProxy.allocateConnection(BaseConnectionManager2.java:842)
at org.jboss.resource.adapter.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:88)
... 53 more
2008-07-23 17:46:04,307 WARN [org.hibernate.util.JDBCExceptionReporter] SQL Error: 0, SQLState: null
2008-07-23 17:46:04,307 ERROR [org.hibernate.util.JDBCExceptionReporter] Transaction is not active: tx=TransactionImple < ac, BasicAction: acc550a:c94:4886fda0:41 status: ActionStatus.ABORT_ONLY >; - nested throwable: (javax.resource.ResourceException: Transaction is not active: tx=TransactionImple < ac, BasicAction: acc550a:c94:4886fda0:41 status: ActionStatus.ABORT_ONLY >)
2008-07-23 17:46:04,307 ERROR [STDERR] org.hibernate.exception.GenericJDBCException: Cannot open connection
anyone?
is this called "multiple one-phase" :
http://wiki.jboss.org/wiki/Multiple1PC ?
I thought using 2 separate transactions is required MSDTC (change <local-tx-datasource> to <xa-datasource>. )?