code: protected void reConnect(IOException originalExcep) throws IOException {
  
          if (getLink().isReconnectAllowed()) {
              // start the reconnect
              if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
                  Tr.debug(tc, "Attempting synchronous reconnect");
              }
              // 359362 - null out the JIT read buffers
              getTSC().getReadInterface().setBuffer(null);
              getLink().reConnectSync(originalExcep);
              nowReconnectedSync(originalExcep);
          } else {
              if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
                  Tr.debug(tc, "Reconnect sync not allowed");
              }
              setPersistent(false);
              throw originalExcep;
          }
      }
docs: During a synchronous write of the request message, if an IOException
  occurs we will attempt to reconnect/rewrite the data once only. Any
  subsequent failure (including during this method) will cause the throw
  of the original IOException up the stack.
  
  @param originalExcep
  @throws IOException