private void createCacheClientAndConnectToSingleServerWithZeroConnPerServer(String host,
      int redundancyLevel) {
    try {
      final String durableClientId = "DurableClientReconnectDUnitTest_client";
      final int durableClientTimeout = 60; // keep the client alive for 60 seconds
      Properties props =
          getClientDistributedSystemProperties(durableClientId, durableClientTimeout);
      instance = new DurableClientReconnectDUnitTest();
      instance.createCache(props);
      PoolImpl p = (PoolImpl) PoolManager.createFactory().addServer(host, PORT1)
          .setSubscriptionEnabled(true).setReadTimeout(10000)
          // .setRetryInterval(2000)
          .setMinConnections(0).setSubscriptionRedundancy(redundancyLevel)
          .create("DurableClientReconnectDUnitTestPool");

      AttributesFactory factory = new AttributesFactory();
      factory.setScope(Scope.LOCAL);
      factory.setPoolName(p.getName());

      RegionAttributes attrs = factory.create();
      Region r = cache.createRegion(REGION_NAME, attrs);
      assertNotNull(r);

      pool = p;
      conn = pool.acquireConnection();
      assertNotNull(conn);

      cache.readyForEvents();

    } catch (Exception e) {
      Assert.fail("test failed due to ", e);
    }
  }
This test checks a problem found in bug 39332 1. Durable client disconnects 2. Durable client
comes back, creates a create to server connection but not a queue connection 3. Durable client
disconnects again 4. Durable client connects 5. Eventually, all of the durable clients
connections are closed because the durable expiration timer task created in step 1 is never
cancelled.
geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/DurableClientReconnectDUnitTest.java