code: public void destroy(Exception e) {
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
              Tr.debug(tc, "Destroying this outbound link: " + this + " " + getVirtualConnection());
          }
          // if this object is not active, then just return out
          if (!this.reconnecting) {
              synchronized (this) {
                  if (!this.bIsActive) {
                      if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
                          Tr.debug(tc, "Ignoring destroy on an inactive object");
                      }
                      return;
                  }
                  this.bIsActive = false;
              }
              super.destroy(e);
              if (null != this.myInterface) {
                  this.myInterface.destroy();
                  this.myInterface = null;
              }
              // 342859 - disconnect from these objects too
              this.targetAddress = null;
              this.myChannel = null;
          } else {
              // this connection is now toast...need to tell that to the
              // channel above.
              this.earlyReconnectDestroy = true;
              IOException ioe = this.reconnectException;
              this.reconnectException = null;
              this.reconnecting = false;
              this.myInterface.callErrorCallback(getVirtualConnection(), ioe);
          }
      }
docs: /*
  @see
  com.ibm.wsspi.channelfw.base.OutboundProtocolLink#destroy(java.lang.Exception
  )