private void createClientCache(int port, String durableClientId) {
    Properties config = new Properties();
    config.setProperty(DURABLE_CLIENT_ID, durableClientId);
    config.setProperty(DURABLE_CLIENT_TIMEOUT, "300000");

    ClientCacheFactory clientCacheFactory = new ClientCacheFactory(config);
    clientCacheFactory.setPoolSubscriptionAckInterval(50);
    clientCacheFactory.setPoolSubscriptionRedundancy(1);
    clientCacheFactory.addPoolServer(hostName, port);

    clientCacheRule.createClientCache(clientCacheFactory);

    ClientRegionFactory<String, String> crf = clientCacheRule.getClientCache()
        .createClientRegionFactory(ClientRegionShortcut.CACHING_PROXY);

    crf.create(regionName);
  }
The test creates two datastores with a partitioned region, and also running a cache server each.
A publisher client is connected to one server while a subscriber client is connected to both the
servers. The partitioned region has entry expiry set with ttl of 3 seconds and action as DESTROY.
The test ensures that the EXPIRE_DESTROY events are propagated to the subscriber client and the
secondary server does process the QRMs for the EXPIRE_DESTROY events.
geode-core/src/distributedTest/java/org/apache/geode/internal/cache/partitioned/QueueRemovalMessageProcessingDistributedTest.java