public static boolean send(InternalCache cache, Set<InternalDistributedMember> recipients) {

    InternalDistributedSystem ids = cache.getInternalDistributedSystem();
    DistributionManager dm = ids.getDistributionManager();
    Set<InternalDistributedMember> filteredRecipients = new HashSet<>();

    // filtered recipients
    for (InternalDistributedMember recipient : recipients) {
      if (KnownVersion.GFE_81.compareTo(recipient.getVersion()) <= 0) {
        filteredRecipients.add(recipient);
      }
    }
    if (filteredRecipients.size() == 0) {
      return true;
    }

    ReplyProcessor21 replyProcessor = new ReplyProcessor21(dm, filteredRecipients);
    ServerPingMessage spm = new ServerPingMessage(replyProcessor);

    spm.setRecipients(filteredRecipients);
    Set failedServers = null;
    try {
      if (cache.getLogger().fineEnabled()) {
        cache.getLogger().fine("Pinging following servers " + filteredRecipients);
      }
      failedServers = dm.putOutgoing(spm);

      // wait for the replies for timeout msecs
      boolean receivedReplies = replyProcessor.waitForReplies(0L);

      dm.getCancelCriterion().checkCancelInProgress(null);

      // If the reply is not received in the stipulated time, throw an exception
      if (!receivedReplies) {
        cache.getLogger().error(
            String.format("Could not ping one of the following servers: %s", filteredRecipients));
        return false;
      }
    } catch (Throwable e) {
      cache.getLogger().error(
          String.format("Could not ping one of the following servers: %s", filteredRecipients), e);
      return false;
    }

    if (failedServers == null || failedServers.size() == 0) {
      return true;
    }

    cache.getLogger()
        .info(String.format("Could not ping one of the following servers: %s", failedServers));

    return false;
  }
Sends a ping message. The pre-GFXD_101 recipients are filtered out and it is assumed that they
are pingable.

@return true if all the recipients are pingable
geode-core/src/main/java/org/apache/geode/internal/cache/ServerPingMessage.java