transactions/src/main/java/org/jboss/as/txn/integration/JBossContextXATerminator.java
@Override
    public void endWork(Work work, Xid xid) {
        jbossXATerminator.cancelWork(work, xid);

        try {
            ContextTransactionManager.getInstance().suspend();
        } catch (SystemException se) {
            throw TransactionLogger.ROOT_LOGGER.cannotSuspendInflowTransactionUnexpectedError(work, se);
        }
    }
@Override
    public void endWork(Work work, Xid xid) {
        jbossXATerminator.cancelWork(work, xid);

        try {
            ContextTransactionManager.getInstance().suspend();
        } catch (SystemException se) {
            throw TransactionLogger.ROOT_LOGGER.cannotSuspendInflowTransactionUnexpectedError(work, se);
        }
    }
<p>
Suspending transaction and canceling the work.
<p>
Suspend transaction has to be called on the wildfly transaction manager
and the we delegate work cancellation to {@link JBossXATerminator}.<br>
First we have to cancel the work for jboss terminator would not work with
suspended transaction.