docs: @Override
      public ConsumerSession createSystemConsumerSession(SIDestinationAddress destAddress,
                                                         DestinationType destinationType,
                                                         SelectionCriteria criteria,
                                                         Reliability reliability,
                                                         boolean enableReadAhead,
                                                         boolean nolocal,
                                                         Reliability unrecoverableReliability,
                                                         boolean bifurcatable)
  
                      throws SIConnectionUnavailableException, SIConnectionDroppedException,
                      SIResourceException, SIConnectionLostException, SILimitExceededException,
                      SIErrorException,
                      SINotAuthorizedException,
                      SIIncorrectCallException,
                      SIDestinationLockedException,
                      SINotPossibleInCurrentConfigurationException
      {
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.entry(tc, "createSystemConsumerSession",
                          new Object[] { destAddress,
                                        destinationType,
                                        criteria,
                                        reliability,
                                        Boolean.valueOf(enableReadAhead),
                                        Boolean.valueOf(nolocal),
                                        unrecoverableReliability,
                                        Boolean.valueOf(bifurcatable) });
  
          // See if this connection has been closed
          checkNotClosed();
  
          checkConsumerSessionNullParameters(destAddress);
  
          if (!destAddress.getDestinationName().startsWith(SIMPConstants.SYSTEM_DESTINATION_PREFIX))
          {
              if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
                  SibTr.exit(tc, "createSystemConsumerSession", "SIIncorrectCallException");
              throw new SIIncorrectCallException(
                              nls.getFormattedMessage(
                                                      "SYSTEM_DESTINATION_USAGE_ERROR_CWSIP0024",
                                                      new Object[] { destAddress.getDestinationName(),
                                                                    _messageProcessor.getMessagingEngineName() },
                                                      null));
          }
  
          ConsumerSession session = null;
          try
          {
              session =
                              internalCreateConsumerSession(
                                                            destAddress,
                                                            null, // alternateUser
                                                            destinationType,
                                                            criteria,
                                                            reliability,
                                                            enableReadAhead,
                                                            nolocal,
                                                            false,
                                                            true, //system
                                                            unrecoverableReliability,
                                                            bifurcatable,
                                                            false,
                                                            true,
                                                            false // gatherMessages
                              );
          } catch (SITemporaryDestinationNotFoundException e)
          {
              // Temporary destination not found should not happen for a System destination
              // FFDC
              FFDCFilter.processException(
                                          e,
                                          "com.ibm.ws.sib.processor.impl.ConnectionImpl.createSystemConsumerSession",
                                          "1:4468:1.347.1.25",
                                          this);
  
              SibTr.error(tc, "INTERNAL_MESSAGING_ERROR_CWSIP0002",
                          new Object[] {
                                        "com.ibm.ws.sib.processor.impl.ConnectionImpl",
                                        "1:4474:1.347.1.25",
                                        e });
  
              SibTr.exception(tc, e);
  
              if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
                  SibTr.exit(tc, "createSystemConsumerSession", "SIErrorException");
  
              throw new SIErrorException(nls.getFormattedMessage(
                                                                 "INTERNAL_MESSAGING_ERROR_CWSIP0002",
                                                                 new Object[] { "ConnectionImpl",
                                                                               "1:4485:1.347.1.25",
                                                                               e },
                                                                 null),
                              e);
          }
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.exit(tc, "createSystemConsumerSession", session);
  
          return session;
      }