private static HARegionQueue getMessageQueue(CacheClientProxy proxy,
      StatisticsClock statisticsClock) {
    try {
      HARegionQueueAttributes harq = new HARegionQueueAttributes();
      harq.setBlockingQueueCapacity(proxy._maximumMessageCount);
      harq.setExpiryTime(proxy._messageTimeToLive);
      ((HAContainerWrapper) proxy._cacheClientNotifier.getHaContainer())
          .putProxy(HARegionQueue.createRegionName(proxy.getHARegionName()), proxy);
      boolean createDurableQueue = proxy.proxyID.isDurable();
      boolean canHandleDelta =
          proxy.getCache().getInternalDistributedSystem().getConfig().getDeltaPropagation()
              && !(proxy.clientConflation == Handshake.CONFLATION_ON);
      if ((createDurableQueue || canHandleDelta) && logger.isDebugEnabled()) {
        logger.debug("Creating a {} subscription queue for {}",
            createDurableQueue ? "durable" : "non-durable",
            proxy.getProxyID());
      }
      return HARegionQueue.getHARegionQueueInstance(proxy.getHARegionName(),
          proxy.getCache(), harq, HARegionQueue.BLOCKING_HA_QUEUE, createDurableQueue,
          proxy._cacheClientNotifier.getHaContainer(), proxy.getProxyID(),
          proxy.clientConflation, proxy.isPrimary(), canHandleDelta, statisticsClock);
    } catch (CancelException | RegionExistsException e) {
      throw e;
    } catch (Exception e) {
      proxy.getCache().getCancelCriterion().checkCancelInProgress(e);
      throw new CacheException(
          "Exception occurred while trying to create a message queue.",
          e) {
        private static final long serialVersionUID = 0L;
      };
    }
  }
Constructor.

@param proxy The <code>CacheClientProxy</code> for which this dispatcher is processing
       messages
@param name thread name for this dispatcher
geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/MessageDispatcher.java