private void createClientRegion(final VM vm, final String regionName, final int port,
      final boolean ccEnabled, final ClientRegionShortcut clientRegionShortcut,
      final boolean registerInterest) {
    SerializableCallable createRegion = new SerializableCallable() {
      @Override
      public Object call() throws Exception {
        ClientCacheFactory cf = new ClientCacheFactory();
        cf.addPoolServer(NetworkUtils.getServerHostName(vm.getHost()), port);
        if (registerInterest) {
          cf.setPoolSubscriptionEnabled(true);
        }
        cf.set(LOG_LEVEL, LogWriterUtils.getDUnitLogLevel());
        ClientCache cache = getClientCache(cf);
        ClientRegionFactory crf = cache.createClientRegionFactory(clientRegionShortcut);
        crf.setConcurrencyChecksEnabled(ccEnabled);
        crf.setStatisticsEnabled(true);
        TestRegion = (LocalRegion) crf.create(regionName);
        if (registerInterest) {
          TestRegion.registerInterestRegex(".*", InterestResultPolicy.KEYS_VALUES, false, true);
        }
        return null;
      }
    };
    vm.invoke(createRegion);
  }
test that distributed GC messages are properly cleaned out of durable client HA queues
geode-core/src/distributedTest/java/org/apache/geode/cache30/ClientServerCCEDUnitTest.java