code: @Override
      public void destroy() // PK20881
      {
          if (tc.isEntryEnabled())
              Tr.entry(tc, "destroy");
  
          // Dummy transactionWrappers may not be in any table and so
          // will not have a resourceCallback registered to remove them.
          if (_resourceCallback != null)
              _resourceCallback.destroy();
  
          _wrappers.remove(_transaction.getGlobalId());
  
          //      Do not remove connection with the TransactionImpl.  This will delay garbage
  //      collection until the TransactionWrapper is garbage collected.
  //      There is a window when an incoming request can access the remoteable object
  //      (ie WSCoordinator or CoordinatorResource) and get access to the TransactionWrapper
  //      while destroy() is called by another thread as the synchronization is on the
  //      TransactionWrapper.  When the incoming request gets control, it will find that
  //      _transaction is null.  Rather than check for this case, we leave the connection
  //      to the TransactionImpl and its associated TransactionState.  The code above will
  //      then check the transaction state and respond appropriately.  These checks are
  //      already required as the superior may retry requests, etc.
  //        _transaction = null;
  
          if (tc.isEntryEnabled())
              Tr.exit(tc, "destroy");
      }
docs: as another server tried to rollback the transaction.