transactionSupplier = () -> { try { return transactionServer.getTransactionService().getTransactionContext().findOrImportTransaction(((XidTransactionID) transactionId).getXid(), 0); } catch (XAException e) { throw new SystemException(e.getMessage());
unmarshaller.start(Marshalling.createByteInput(inputStream)); for (int i = 0; i < count; i ++) { xids[i ++] = unmarshaller.readObject(XidTransactionID.class).getXid();
final TransactionID transactionID = TransactionID.createTransactionID(bytes); if (transactionID instanceof XidTransactionID) try { final SubordinateTransactionControl control = transactionServer.getTransactionService().getTransactionContext().findOrImportTransaction(((XidTransactionID) transactionID).getXid(), 0).getControl(); switch (code) { case Protocol.TXN_COMMIT_REQUEST: {
/** * Imports a {@link Transaction} into the {@link SubordinationManager} and associates it with the * passed {@link org.jboss.ejb.client.XidTransactionID#getXid()} Xid}. Returns the imported transaction * * @param xidTransactionID The {@link XidTransactionID} * @param txTimeout The transaction timeout * @return * @throws XAException */ Transaction importTransaction(final XidTransactionID xidTransactionID, final int txTimeout) throws XAException { final TransactionImporter transactionImporter = SubordinationManager.getTransactionImporter(); return transactionImporter.importTransaction(xidTransactionID.getXid(), txTimeout); }
/** * Returns a {@link SubordinateTransaction} associated with the passed {@link XidTransactionID}. * If there's no such transaction, then this method returns null. * * @param xidTransactionID The {@link XidTransactionID} * @return * @throws XAException */ public SubordinateTransaction getImportedTransaction(final XidTransactionID xidTransactionID) throws XAException { final Xid xid = xidTransactionID.getXid(); final TransactionImporter transactionImporter = SubordinationManager.getTransactionImporter(); return transactionImporter.getImportedTransaction(xid); }
@Override protected void manageTransaction() throws Throwable { final SubordinateTransaction subordinateTransaction = this.transactionsRepository.getImportedTransaction(this.xidTransactionID); if (subordinateTransaction == null) { throw EjbMessages.MESSAGES.noSubordinateTransactionPresentForXid(this.xidTransactionID.getXid()); } // first associate the tx on this thread, by resuming the tx this.resumeTransaction(subordinateTransaction); try { // invoke the beforeCompletion // Courtesy: com.arjuna.ats.internal.jta.transaction.arjunacore.jca.XATerminatorImple // do beforeCompletion() subordinateTransaction.doBeforeCompletion(); } finally { // disassociate the tx that was associated (resumed) on this thread. // This needs to be done explicitly because the SubOrdinationManager isn't responsible // for clearing the tx context from the thread this.transactionsRepository.getTransactionManager().suspend(); } }
SubordinationManager.getTransactionImporter().removeImportedTransaction(this.xidTransactionID.getXid()); return XAResource.XA_RDONLY; SubordinationManager.getTransactionImporter().removeImportedTransaction(this.xidTransactionID.getXid()); final XAException xaException = new XAException(xaExceptionCode); if (initCause != null) {
transactionSupplier = () -> { try { return transactionServer.getTransactionService().getTransactionContext().findOrImportTransaction(((XidTransactionID) transactionId).getXid(), 0); } catch (XAException e) { throw new SystemException(e.getMessage());
try { return transactionServer.getTransactionService().getTransactionContext().findOrImportTransaction( ((XidTransactionID) transactionId).getXid(), ContextTransactionManager.getGlobalDefaultTransactionTimeout()); } catch (XAException e) { throw new SystemException(e.getMessage());
unmarshaller.start(Marshalling.createByteInput(inputStream)); for (int i = 0; i < count; i ++) { xids[i ++] = unmarshaller.readObject(XidTransactionID.class).getXid();
unmarshaller.start(Marshalling.createByteInput(inputStream)); for (int i = 0; i < count; i ++) { xids[i ++] = unmarshaller.readObject(XidTransactionID.class).getXid();
final Xid xid = this.xidTransactionID.getXid(); try {
final Xid xid = this.xidTransactionID.getXid();
final TransactionID transactionID = TransactionID.createTransactionID(bytes); if (transactionID instanceof XidTransactionID) try { final SubordinateTransactionControl control = transactionServer.getTransactionService().getTransactionContext().findOrImportTransaction(((XidTransactionID) transactionID).getXid(), 0).getControl(); switch (code) { case Protocol.TXN_COMMIT_REQUEST: {
final TransactionID transactionID = TransactionID.createTransactionID(bytes); if (transactionID instanceof XidTransactionID) try { final SubordinateTransactionControl control = transactionServer.getTransactionService().getTransactionContext().findOrImportTransaction(((XidTransactionID) transactionID).getXid(), 0).getControl(); switch (code) { case Protocol.TXN_COMMIT_REQUEST: {
final Xid xid = this.xidTransactionID.getXid();