code: @Override
      public final void stop(int arg0)
      {
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.entry(this, tc, "stop", Integer.valueOf(arg0));
  
          //Shut down processing can only begin when the lock is available.
          synchronized (_startLock)
          {
              if (_state == MessageStoreState.STATE_UNINITIALIZED)
              {
                  if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
                      SibTr.exit(this, tc, "stop");
                  throw new IllegalStateException(nls.getFormattedMessage("INVALID_MSGSTORE_STATE_SIMS0505", new Object[] { _state }, null));
              }
  
              if (null != _expirer)
                  _expirer.stop();
  
              if (null != _deliveryDelayManager)
                  _deliveryDelayManager.stop();
  
              if (null != _cacheLoader)
                  _cacheLoader.stop();
  
              if (null != _membershipMap)
                  _membershipMap.clear();
  
              if (null != _persistentMessageStore)
                  _persistentMessageStore.stop(arg0);
  
              // Null out any references to our cache/om cache
              _rootMembership = null;
              _itemStorageManager = null;
              _tickCountGenerator = null;
              _uniqueIdentifierGenerator = null;
              _uniqueLockIDGenerator = null;
  
              _state = MessageStoreState.STATE_STOPPED;
  
              if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled())
                  SibTr.debug(this, tc, "Message store state is : " + _state);
          }
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.exit(this, tc, "stop");
      }
docs: /*
  (non-Javadoc)
  
  @see com.ibm.ws.sib.admin.JsEngineComponent#stop(int)