code: public int prepareOperation() throws XAException, XAResourceNotAvailableException
      {
          if (tc.isEntryEnabled())
              Tr.entry(tc, "prepareOperation", new Object[] { this });
  
          final int retVal = getXAResource().prepare(_xid);
  
          if (tc.isEntryEnabled())
              Tr.exit(tc, "prepareOperation", retVal);
          return retVal;
      }
docs: It's gonna be called asynchronously