code: public ChannelTermination setup(ChannelData chanData, TCPChannelConfiguration oTCPChannelConfig, TCPChannelFactory _f) throws ChannelException {
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) {
              Tr.entry(tc, "setup");
          }
          super.setup(chanData, oTCPChannelConfig, _f);
  
          // try to load the AsyncLibrary. It will throw an exception if it can't load
          try {
              IAsyncProvider provider = AsyncLibrary.createInstance();
  
              if (getConfig().getAllocateBuffersDirect()) {
                  jitSupportedByNative = provider.hasCapability(IAsyncProvider.CAP_JIT_BUFFERS);
              } else {
                  jitSupportedByNative = false;
              }
          } catch (AsyncException ae) {
              if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
                  Tr.debug(tc, "AioTCPChannel couldn't load native AIO library: " + ae.getMessage());
              }
              throw new ChannelException(ae);
          }
  
          if (!getConfig().isInbound()) {
              boolean startSelectors = false;
              if (wqm == null) {
                  wqm = new AioWorkQueueManager();
                  startSelectors = true;
              }
              super.connectionManager = new ConnectionManager(this, wqm);
              if (startSelectors) {
                  wqm.startSelectors(false);
              }
          }
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) {
              Tr.exit(tc, "setup");
          }
          return this;
      }
docs: /*
  @see
  com.ibm.ws.tcpchannel.internal.TCPChannel#setup(com.ibm.websphere.channelfw
  .ChannelData, com.ibm.ws.tcpchannel.internal.TCPChannelConfiguration,
  com.ibm.ws.tcpchannel.internal.TCPChannelFactory)