code: public void destroy(Exception e) {
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) {
              if (e == null) {
                  Tr.entry(tc, "destroy(null)");
              } else {
                  Tr.entry(tc, "destroy(Exc) " + e.getMessage());
              }
          }
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled() && getVirtualConnection().getConnectionDescriptor() != null) {
              Tr.debug(tc, "Destroying the connection: " + getVirtualConnection().getConnectionDescriptor());
          }
  
          if (this.socketIOChannel != null) {
              this.socketIOChannel.close();
              this.tcpChannel.decrementConnectionCount();
          }
  
          // clearing references will help free up memory in case someone
          // above us doesn't release the reference to this connlink
          this.socketIOChannel = null;
          this.reader = null;
          this.writer = null;
  
          super.destroy(e);
          this.tcpChannel.releaseConnectionLink(this, this.inUseIndex);
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) {
              Tr.exit(tc, "destroy()");
          }
      }
docs: /*
  @see
  com.ibm.wsspi.channelfw.base.OutboundConnectorLink#destroy(java.lang.Exception
  )