docs: @Override
      public void checkNotClosed() throws SISessionUnavailableException
      {
          if ((_closed) || (_closing && !(_asynchConsumer.isAsynchConsumerRunning())))
          {
              if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
                  SibTr.entry(tc, "checkNotClosed");
  
              //check the close conditions to produce a well-formed error message
              if (_consumerKey.isClosedDueToDelete())
              {
                  if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
                      SibTr.exit(tc, "checkNotClosed", "SISessionDroppedException - deleted");
                  throw new SISessionDroppedException(
                                  nls.getFormattedMessage(
                                                          "DESTINATION_DELETED_ERROR_CWSIP00221",
                                                          new Object[] {
                                                                        _consumerDispatcher.getDestination().getName(),
                                                                        _consumerDispatcher.getMessageProcessor().getMessagingEngineName() },
                                                          null));
              }
              if (_consumerKey.isClosedDueToReceiveExclusive())
              {
                  if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
                      SibTr.exit(tc, "checkNotClosed", "SISessionDroppedException - receive Exclusive");
                  throw new SISessionDroppedException(
                                  nls.getFormattedMessage(
                                                          "DESTINATION_EXCLUSIVE_ERROR_CWSIP00222",
                                                          new Object[] {
                                                                        _consumerDispatcher.getDestination().getName(),
                                                                        _consumerDispatcher.getMessageProcessor().getMessagingEngineName() },
                                                          null));
              }
              if (_consumerKey.isClosedDueToLocalizationUnreachable())
              {
                  if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
                      SibTr.exit(tc, "checkNotClosed", "SISessionDroppedException - localisation unreachable");
                  throw new SISessionDroppedException(
                                  nls.getFormattedMessage(
                                                          "DESTINATION_UNREACHABLE_ERROR_CWSIP00223",
                                                          new Object[] {
                                                                        _consumerDispatcher.getDestination().getName(),
                                                                        _consumerDispatcher.getMessageProcessor().getMessagingEngineName() },
                                                          null));
              }
  
              SISessionUnavailableException e =
                              new SISessionUnavailableException(
                                              nls.getFormattedMessage(
                                                                      "CONSUMER_CLOSED_ERROR_CWSIP0177",
                                                                      new Object[] { _consumerDispatcher.getDestination().getName(),
                                                                                    _messageProcessor.getMessagingEngineName() },
                                                                      null));
  
              SibTr.exception(tc, e);
  
              if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
                  SibTr.exit(tc, "checkNotClosed", "consumer closed");
  
              throw e;
          }
      }