public void send(Set<DistributedMember> recipients)
        throws InterruptedException, ReplyException {
      // this message is only used by battery tests so we can log info level debug
      // messages
      replyProcessor = new DirectReplyProcessor(originDm, recipients);
      processorId = replyProcessor.getProcessorId();
      setRecipients(recipients);
      Set failures = originDm.putOutgoing(this);
      if (failures != null && !failures.isEmpty()) {
        for (Object failure : failures) {
          System.err.println("Unable to send serial acked message to " + failure);
        }
      }

      replyProcessor.waitForReplies();
    }
SerialAckedMessageWithBigReply requires conserve-sockets=false and acts to send
a large reply message to the sender. You must have already created a cache in the
sender and receiver VMs and registered this class with the DataSerializableFixedID
of SERIAL_ACKED_MESSAGE. Don't forget to reset the registration to
SerialAckedMessage at the end of the test.
geode-core/src/upgradeTest/java/org/apache/geode/ClusterCommunicationsDUnitTest.java