public TransactionManager getTransactionManager() { LOG.info("Using embedded Geronimo transaction manager"); try { return new GeronimoTransactionManager(); } catch (XAException exception) { throw new IllegalStateException("Unable to instantiate Geronimo Transaction Manager", exception); } }
@Override public void commit(final Xid xid, final boolean onePhase) throws XAException { // TODO: emit event MonitoredTransactionManager.super.commit(xid, onePhase); }
@Override public void rollback(final Xid xid) throws XAException { // TODO: emit event MonitoredTransactionManager.super.rollback(xid); }
public void end(Xid xid) throws XAException, SystemException { synchronized (importedTransactions) { Transaction importedTransaction = (Transaction) importedTransactions.get(xid); if (importedTransaction == null) { throw new XAException("No imported transaction for xid: " + xid); } if (importedTransaction != getTransaction()) { throw new XAException("Imported transaction is not associated with the curren thread xid: " + xid); } suspend(); } } }
public void begin(Xid xid, long txTimeoutMillis) throws XAException, InvalidTransactionException, SystemException, ImportedTransactionActiveException { Transaction importedTransaction; synchronized (importedTransactions) { importedTransaction = (Transaction) importedTransactions.get(xid); if (importedTransaction == null) { // this does not associate tx with current thread. importedTransaction = importXid(xid, txTimeoutMillis); importedTransactions.put(xid, importedTransaction); } // associate the the imported transaction with the current thread try { resume(importedTransaction); } catch (InvalidTransactionException e) { // this occures if our transaciton is associated with another thread throw (ImportedTransactionActiveException)new ImportedTransactionActiveException(xid).initCause(e); } } }
/** * @see javax.resource.spi.XATerminator#prepare(javax.transaction.xa.Xid) */ public int prepare(Xid xid) throws XAException { Transaction importedTransaction; synchronized (importedTransactions) { importedTransaction = (Transaction) importedTransactions.get(xid); } if (importedTransaction == null) { throw new XAException("No imported transaction for xid: " + xid); } try { int status = importedTransaction.getStatus(); assert status == Status.STATUS_ACTIVE; } catch (SystemException e) { throw (XAException)new XAException().initCause(e); } return prepare(importedTransaction); }
/** * @see javax.resource.spi.XATerminator#forget(javax.transaction.xa.Xid) */ public void forget(Xid xid) throws XAException { Transaction importedTransaction; synchronized (importedTransactions) { importedTransaction = (Transaction) importedTransactions.remove(xid); } if (importedTransaction == null) { throw new XAException("No imported transaction for xid: " + xid); } //todo is there a correct status test here? // try { // int status = tx.getStatus(); // assert status == Status.STATUS_ACTIVE || status == Status.STATUS_PREPARED; // } catch (SystemException e) { // throw new XAException(); // } forget(importedTransaction); }
Map recoveredXidMap = getExternalXids(); Xid[] recoveredXids = new Xid[recoveredXidMap.size()]; int i = 0;
public void end(Xid xid) throws XAException, SystemException { synchronized (importedTransactions) { Transaction importedTransaction = (Transaction) importedTransactions.get(xid); if (importedTransaction == null) { throw new XAException("No imported transaction for xid: " + xid); } if (importedTransaction != getTransaction()) { throw new XAException("Imported transaction is not associated with the current thread xid: " + xid); } suspend(); } } }
public void begin(Xid xid, long txTimeoutMillis) throws XAException, InvalidTransactionException, SystemException, ImportedTransactionActiveException { Transaction importedTransaction; synchronized (importedTransactions) { importedTransaction = (Transaction) importedTransactions.get(xid); if (importedTransaction == null) { // this does not associate tx with current thread. importedTransaction = importXid(xid, txTimeoutMillis); importedTransactions.put(xid, importedTransaction); } // associate the the imported transaction with the current thread try { resume(importedTransaction); } catch (InvalidTransactionException e) { // this occures if our transaciton is associated with another thread throw (ImportedTransactionActiveException)new ImportedTransactionActiveException(xid).initCause(e); } } }
/** * @see javax.resource.spi.XATerminator#prepare(javax.transaction.xa.Xid) */ public int prepare(Xid xid) throws XAException { Transaction importedTransaction; synchronized (importedTransactions) { importedTransaction = (Transaction) importedTransactions.get(xid); } if (importedTransaction == null) { throw new XAException("No imported transaction for xid: " + xid); } try { int status = importedTransaction.getStatus(); assert status == Status.STATUS_ACTIVE; } catch (SystemException e) { throw (XAException)new XAException().initCause(e); } return prepare(importedTransaction); }
/** * @see javax.resource.spi.XATerminator#forget(javax.transaction.xa.Xid) */ public void forget(Xid xid) throws XAException { Transaction importedTransaction; synchronized (importedTransactions) { importedTransaction = (Transaction) importedTransactions.remove(xid); } if (importedTransaction == null) { throw new XAException("No imported transaction for xid: " + xid); } //todo is there a correct status test here? // try { // int status = tx.getStatus(); // assert status == Status.STATUS_ACTIVE || status == Status.STATUS_PREPARED; // } catch (SystemException e) { // throw new XAException(); // } forget(importedTransaction); }
Map recoveredXidMap = getExternalXids(); Xid[] recoveredXids = new Xid[recoveredXidMap.size()]; int i = 0;
public TransactionManager getTransactionManager() { __log.info("Using embedded Geronimo transaction manager"); try { Object obj = new org.apache.geronimo.transaction.manager.GeronimoTransactionManager(); return (TransactionManager) obj; } catch (Exception except) { throw new IllegalStateException("Unable to instantiate Geronimo Transaction Manager", except); } } }
public void end(Xid xid) throws XAException, SystemException { synchronized (importedTransactions) { Transaction importedTransaction = (Transaction) importedTransactions.get(xid); if (importedTransaction == null) { throw new XAException("No imported transaction for xid: " + xid); } if (importedTransaction != getTransaction()) { throw new XAException("Imported transaction is not associated with the curren thread xid: " + xid); } suspend(); } } }
public void begin(Xid xid, long txTimeoutMillis) throws XAException, InvalidTransactionException, SystemException, ImportedTransactionActiveException { Transaction importedTransaction; synchronized (importedTransactions) { importedTransaction = (Transaction) importedTransactions.get(xid); if (importedTransaction == null) { // this does not associate tx with current thread. importedTransaction = importXid(xid, txTimeoutMillis); importedTransactions.put(xid, importedTransaction); } // associate the the imported transaction with the current thread try { resume(importedTransaction); } catch (InvalidTransactionException e) { // this occures if our transaciton is associated with another thread throw (ImportedTransactionActiveException)new ImportedTransactionActiveException(xid).initCause(e); } } }
/** * @see javax.resource.spi.XATerminator#rollback(javax.transaction.xa.Xid) */ public void rollback(Xid xid) throws XAException { Transaction importedTransaction; synchronized (importedTransactions) { importedTransaction = (Transaction) importedTransactions.remove(xid); } if (importedTransaction == null) { throw new XAException("No imported transaction for xid: " + xid); } try { int status = importedTransaction.getStatus(); assert status == Status.STATUS_ACTIVE || status == Status.STATUS_PREPARED; } catch (SystemException e) { throw (XAException)new XAException().initCause(e); } rollback(importedTransaction); }
/** * @see javax.resource.spi.XATerminator#commit(javax.transaction.xa.Xid, boolean) */ public void commit(Xid xid, boolean onePhase) throws XAException { Transaction importedTransaction; synchronized (importedTransactions) { importedTransaction = (Transaction) importedTransactions.remove(xid); } if (importedTransaction == null) { throw new XAException("No imported transaction for xid: " + xid); } try { int status = importedTransaction.getStatus(); assert status == Status.STATUS_ACTIVE || status == Status.STATUS_PREPARED: "invalid status: " + status; } catch (SystemException e) { throw (XAException)new XAException().initCause(e); } commit(importedTransaction, onePhase); }
/** * @see javax.resource.spi.XATerminator#prepare(javax.transaction.xa.Xid) */ public int prepare(Xid xid) throws XAException { Transaction importedTransaction; synchronized (importedTransactions) { importedTransaction = (Transaction) importedTransactions.get(xid); } if (importedTransaction == null) { throw new XAException("No imported transaction for xid: " + xid); } try { int status = importedTransaction.getStatus(); assert status == Status.STATUS_ACTIVE; } catch (SystemException e) { throw (XAException)new XAException().initCause(e); } return prepare(importedTransaction); }
/** * @see javax.resource.spi.XATerminator#forget(javax.transaction.xa.Xid) */ public void forget(Xid xid) throws XAException { Transaction importedTransaction; synchronized (importedTransactions) { importedTransaction = (Transaction) importedTransactions.remove(xid); } if (importedTransaction == null) { throw new XAException("No imported transaction for xid: " + xid); } //todo is there a correct status test here? // try { // int status = tx.getStatus(); // assert status == Status.STATUS_ACTIVE || status == Status.STATUS_PREPARED; // } catch (SystemException e) { // throw new XAException(); // } forget(importedTransaction); }