@Override
  public void sendBatch(List<GatewayQueueEvent<?, ?>> events, Connection connection,
      ExecutablePool senderPool, int batchId, boolean removeFromQueueOnException)
      throws BatchException70 {
    GatewaySenderBatchOp.executeOn(connection, senderPool, events, batchId,
        removeFromQueueOnException, false);
    GatewaySenderEventRemoteDispatcher.GatewayAck ack =
        (GatewaySenderEventRemoteDispatcher.GatewayAck) GatewaySenderBatchOp.executeOn(connection,
            senderPool);
    if (ack == null) {
      throw new BatchException70("Unknown error sending batch", null, 0, batchId);
    }
    if (ack.getBatchException() != null) {
      throw ack.getBatchException();
    }
  }
Certain exception types are considered recoverable when either dispatching a batch or
reading an acknowledgement.
geode-wan/src/main/java/org/apache/geode/cache/wan/internal/GatewaySenderEventRemoteDispatcher.java