docs: public void ready(Reliability unrecoverability) throws SINotPossibleInCurrentConfigurationException
    {
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
        SibTr.entry(tc, "ready", unrecoverability);
  
      if (closedReason == ConsumerKey.CLOSED_DUE_TO_DELETE)
      {
        if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) SibTr.exit(tc, "ready", "SINotPossibleInCurrentConfigurationException - deleted");
        throw new SINotPossibleInCurrentConfigurationException(
          nls.getFormattedMessage(
            "DESTINATION_DELETED_ERROR_CWSIP00221",
            new Object[] {
              consumerDispatcher.getDestination().getName(),
              consumerDispatcher.getMessageProcessor().getMessagingEngineName() },
            null));
      }
      if (closedReason == ConsumerKey.CLOSED_DUE_TO_RECEIVE_EXCLUSIVE)
      {
        if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) SibTr.exit(tc, "ready", "SINotPossibleInCurrentConfigurationException - receive Exclusive");
        throw new SINotPossibleInCurrentConfigurationException(
          nls.getFormattedMessage(
              "DESTINATION_EXCLUSIVE_ERROR_CWSIP00222",
              new Object[] {
                consumerDispatcher.getDestination().getName(),
                consumerDispatcher.getMessageProcessor().getMessagingEngineName() },
              null));
      }
      if (closedReason == ConsumerKey.CLOSED_DUE_TO_ME_UNREACHABLE)
      {
        if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) SibTr.exit(tc, "ready", "SINotPossibleInCurrentConfigurationException - localisation unreachable");
        throw new SINotPossibleInCurrentConfigurationException(
          nls.getFormattedMessage(
                "DESTINATION_UNREACHABLE_ERROR_CWSIP00223",
                new Object[] {
                  consumerDispatcher.getDestination().getName(),
                  consumerDispatcher.getMessageProcessor().getMessagingEngineName() },
                null));
      }
  
      //get the readyConsumer list lock
      synchronized (consumerDispatcher.getDestination().getReadyConsumerPointLock())
      {
        // Remember the recoverability of this consumer
        this.unrecoverability = unrecoverability;
  
        // Let the ConsumerDispatcher know about this new ready consumer
        if(keyGroup == null)
        {
          if(!ready)
            version = consumerDispatcher.newReadyConsumer(this, specific);
        }
        else
          keyGroup.ready(null);
  
        this.ready = true;
      }
  
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
        SibTr.exit(tc, "ready", Long.valueOf(version));
    }