private void createClientRegion(final VM vm, final int port1,
      final int port2) {
    SerializableCallable createRegion = new SerializableCallable(
        "create client region in " + vm) {
      @Override
      public Object call() throws Exception {
        ClientCacheFactory cf = new ClientCacheFactory();

        cf.addPoolServer(NetworkUtils.getServerHostName(vm.getHost()), port1);
        cf.addPoolServer(NetworkUtils.getServerHostName(vm.getHost()), port2);
        cf.setPoolPRSingleHopEnabled(false);
        cf.setPoolReadTimeout(10 * 60 * 1000);
        cf.setPoolSubscriptionEnabled(true);

        ClientCache cache = getClientCache(cf);
        Region region =
            cache.createClientRegionFactory(ClientRegionShortcut.CACHING_PROXY)
                .create("region");
        region.registerInterest("ALL_KEYS");
        return null;
      }
    };
    vm.invoke(createRegion);
  }
Test that we can successfully retry a distributed putAll on an accessor and get the version
information. bug #48205
geode-core/src/distributedTest/java/org/apache/geode/pdx/ClientsWithVersioningRetryDUnitTest.java