tm.resume(subordinateTransaction); subordinateTransaction.enlistResource(new XAResourceImple(XAResource.XA_RDONLY, XAResource.XA_OK)); subordinateTransaction.enlistResource(toCommit); tm.resume(subordinateTransaction); subordinateTransaction.doPrepare(); Transaction suspend = tm.suspend(); tm.resume(subordinateTransaction); subordinateTransaction.doCommit(); tm.suspend();