[jboss-user] [Beginners Corner] - set a rolled-back txn back to active
gan.gary
do-not-reply at jboss.com
Wed Jul 23 19:55:09 EDT 2008
have Java/HIbernate apps. When run in Eclipse/JAR file with this, it works fine.
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:
anonymous wrote : 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>. )?
when i do this in between code:
txReporting.rollback();
| if(txReporting.wasRolledBack())
| System.out.printf("txReporting.wasRolledBack \n");
| if(txReporting.isActive())
| System.out.printf("txReporting.isActive \n");
It never show "txReporting.isActive" after txn.rolledback. But there's no option/method to set it to active?
anyone?
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4166281#4166281
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4166281
More information about the jboss-user
mailing list