@Test
  public void testDataSerializersWithServerKillAndReInvoked() throws Exception {
    PORT1 = initServerCache(server1);
    PORT2 = initServerCache(server2);
    client1.invoke(() -> DataSerializerPropagationDUnitTest
        .createClientCache(NetworkUtils.getServerHostName(server1.getHost()), PORT1));
    client2.invoke(() -> DataSerializerPropagationDUnitTest
        .createClientCache(NetworkUtils.getServerHostName(server2.getHost()), PORT2));

    client1.invoke(() -> registerDataSerializer(DSObject1.class));
    client1.invoke(() -> DataSerializerPropagationDUnitTest
        .verifyDataSerializers(instanceCountWithOnePut));

    server1.invoke(() -> DataSerializerPropagationDUnitTest
        .verifyDataSerializers(instanceCountWithOnePut));

    server2.invoke(() -> DataSerializerPropagationDUnitTest
        .verifyDataSerializers(instanceCountWithOnePut));

    client2.invoke(() -> DataSerializerPropagationDUnitTest
        .verifyDataSerializers(instanceCountWithOnePut));

    // can get server connectivity exception
    try (IgnoredException removedLater =
        IgnoredException.addIgnoredException("Server unreachable", client1)) {

      server1.invoke(DataSerializerPropagationDUnitTest::stopServer);

      try {
        client1.invoke(() -> registerDataSerializer(DSObject2.class));
      } catch (Exception e) {// we are putting in a client whose server is dead

      }
      try {
        client1.invoke(() -> registerDataSerializer(DSObject3.class));
      } catch (Exception e) {// we are putting in a client whose server is
        // dead
      }
      server1.invoke(DataSerializerPropagationDUnitTest::startServer);

      client1.invoke(() -> DataSerializerPropagationDUnitTest
          .verifyDataSerializers(instanceCountWithAllPuts));

      server1.invoke(() -> DataSerializerPropagationDUnitTest
          .verifyDataSerializers(instanceCountWithAllPuts));

      server2.invoke(() -> DataSerializerPropagationDUnitTest
          .verifyDataSerializers(instanceCountWithAllPuts));

      client1.invoke(() -> DataSerializerPropagationDUnitTest
          .verifyDataSerializers(instanceCountWithAllPuts));
    }
  }
Register two DataSerializers on the server and verify that they get propagated to client.
geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/DataSerializerPropagationDUnitTest.java