@Test
  public void sendingTypeIgnoresClustersThatAreNotRunning() {

    ClientCache client = createScenario();
    int siteCLocatorPort = createLocator(locatorC, SITE_C_DSID);

    createServerRegion(serverC, siteCLocatorPort, "regionC", SITE_C_DSID);

    Pool poolC =
        PoolManager.createFactory().addLocator("localhost", siteCLocatorPort).create("poolC");

    client.createClientRegionFactory(ClientRegionShortcut.PROXY)
        .setPoolName("poolC")
        .create("regionC");

    Region regionA = client.getRegion("regionA");
    Region regionC = client.getRegion("regionC");

    createType(serverA, "regionA");

    serverB.invoke(JUnit4CacheTestCase::closeCache);

    // Put from the client serverA. This will try to send the type to serverB and serverC
    regionA.put("key", new SimpleClass(5, (byte) 6));
    regionC.put("key", new SimpleClass(5, (byte) 6));

    // Make sure both remaining servers can deserialize the type
    serverC.invoke(() -> assertEquals(new SimpleClass(5, (byte) 6),
        getCache().getRegion("regionC").get("key")));
    serverA.invoke(() -> assertEquals(new SimpleClass(5, (byte) 6),
        getCache().getRegion("regionA").get("key")));
  }
If a client has multiple pools, but one of the pools has no available servers, creating
a new type should still succeed.
geode-core/src/distributedTest/java/org/apache/geode/pdx/PdxMultiClusterClientServerDUnitTest.java