@Override
  public void readyForEvents(InternalDistributedSystem system) {
    synchronized (lock) {
      sentClientReady = true;
    }

    QueueConnectionImpl primary = null;
    while (primary == null) {
      try {
        primary = (QueueConnectionImpl) getAllConnections().getPrimary();
      } catch (NoSubscriptionServersAvailableException ignore) {
        break;
      }
      if (primary.sendClientReady()) {
        try {
          logger.info("Sending ready for events to primary: {}", primary);
          ReadyForEventsOp.execute(pool, primary);
        } catch (Exception e) {
          if (logger.isDebugEnabled()) {
            logger.debug("Error sending ready for events to {}", primary, e);
          }
          primary.destroy();
          primary = null;
        }
      }
    }
  }
Manages Client Queues. Responsible for creating callback connections and satisfying redundancy
requirements.

@since GemFire 5.7
geode-core/src/main/java/org/apache/geode/cache/client/internal/QueueManagerImpl.java