code: protected void stopIfRequired() throws SIException
      {
          final String methodName = "stopIfRequired";
          if (TraceComponent.isAnyTracingEnabled() && TRACE.isEntryEnabled()) {
              SibTr.entry(this, TRACE, methodName, new Object[] { this });
          }
  
          if (TRACE.isDebugEnabled())
          {
              SibTr.debug(TRACE, methodName, "sibPacingSessionStarted: " + sibPacingSessionStarted + "\nmpcPacingSessionStarted: " + mpcPacingSessionStarted + "\nsessionStarted: "
                                             + sessionStarted);
          }
  
          if (!sibPacingSessionStarted || !mpcPacingSessionStarted || !sessionStarted)
          {
              _session.stop();
          }
  
          if (TraceComponent.isAnyTracingEnabled() && TRACE.isEntryEnabled())
          {
              SibTr.exit(this, TRACE, methodName);
          }
      }
docs: Stop the session if it has been requested. It's only valid to do this *if* you're a thread
  which already has the processor AsynchConsumerBusy lock
  
  @throws SIException