docs: public final synchronized void destroyNotRemove() {
          final boolean isTraceOn = TraceComponent.isAnyTracingEnabled();
          if (isTraceOn && tc.isEntryEnabled()) // d144064
              Tr.entry(tc, "destroyNotRemove : " + this);
  
          if (state == DESTROYED) {
              return;
          }
  
          // If running in an extended persistence context, the JEERuntime code
          // maintains a map of SFSBs that must be cleaned up.  This is
          // especially important if this method is called due to a timeout.
          // PM12927
          if (ivExPcContext != null) {
              container.getEJBRuntime().getEJBJPAContainer().onRemoveOrDiscard(ivExPcContext);
          }
  
          if (isZOS) {
              removeServantRoutingAffinity(); // d646413.2
          }
          setState(DESTROYED);
  
          // Release any JCDI creational contexts that may exist.     F743-29174
          releaseManagedObjectContext();
  
          if (pmiBean != null) {
              pmiBean.beanDestroyed();
          }
  
          disconnectWrapper(); // F61004.6
          destroyHandleList();
  
          if (isTraceOn && tc.isEntryEnabled()) // d144064
              Tr.exit(tc, "destroyNotRemove");
  
      }