public void suspend() throws SystemException {
    XAResource xar = null;
    synchronized (resourceMap) {
      Iterator iterator = resourceMap.entrySet().iterator();
      Map.Entry entry;
      Boolean isActive = Boolean.FALSE;
      while (iterator.hasNext()) {
        entry = (Map.Entry) iterator.next();
        xar = (XAResource) entry.getKey();
        isActive = (Boolean) entry.getValue();
        if (isActive) {
          try {
            // delistResource(xar, XAResource.TMSUCCESS);
            xar.end(xid, XAResource.TMSUSPEND);
            entry.setValue(Boolean.FALSE);
          } catch (Exception e) {
            String exception =
                String.format("error while delisting XAResource %s %s",
                    e, " " + (e instanceof XAException
                        ? ("Error Code =" + ((XAException) e).errorCode) : ""));
            LogWriter writer = TransactionUtils.getLogWriter();
            if (VERBOSE) {
              writer.fine(exception);
            }
            throw new SystemException(exception);
          }
        }
        /*
         * catch (SystemException e) { String exception =
         * "GlobaTransaction::suspend not succesful due to " + e; LogWriter writer =
         * TransactionUtils.getLogWriter(); if (VERBOSE) writer.fine(exception); throw new
         * SystemException(exception); }
         */
      }
    }
  }
suspends the current transaction by deactivating the XAResource (delist)
geode-core/src/main/java/org/apache/geode/internal/jta/GlobalTransaction.java