protected Connection get(InternalDistributedMember id, boolean preserveOrder, long startTime,
      long ackTimeout, long ackSATimeout, boolean doNotRetry)
      throws IOException, DistributedSystemDisconnectedException {
    if (closed) {
      owner.getCancelCriterion().checkCancelInProgress(null);
      throw new DistributedSystemDisconnectedException("Connection table is closed");
    }
    Connection result;
    boolean threadOwnsResources = threadOwnsResources();
    if (!preserveOrder || !threadOwnsResources) {
      result = getSharedConnection(id, threadOwnsResources, preserveOrder, startTime, ackTimeout,
          ackSATimeout, doNotRetry);
    } else {
      result = getThreadOwnedConnection(id, startTime, ackTimeout, ackSATimeout, doNotRetry);
    }
    if (result != null) {
      Assert.assertTrue(result.getPreserveOrder() == preserveOrder);
    }
    return result;
  }
Get a new connection

@param id the DistributedMember on which to create the connection
@param preserveOrder whether order should be preserved
@param startTime the ms clock start time
@param ackTimeout the ms ack-wait-threshold, or zero
@param ackSATimeout the ms ack-severe-alert-threshold, or zero
@param doNotRetry whether we should perform reattempt to create connection
@return the new Connection, or null if a problem
@throws IOException if the connection could not be created
geode-core/src/main/java/org/apache/geode/internal/tcp/ConnectionTable.java