code: public void init() throws ChannelException {
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) {
              Tr.entry(tc, "init");
          }
          super.init();
  
          if (!getConfig().isInbound()) {
              try {
                  this.asyncChannelGroup = findOrCreateACG();
                  if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
                      Tr.debug(tc, "Created completion port for outbound connections, completionPort = " + this.asyncChannelGroup.getCompletionPort());
                  }
              } catch (AsyncException ae) {
                  ChannelException ce = new ChannelException("Error creating async channel group ");
                  ce.initCause(ae);
                  throw ce;
              }
          }
          // create AIO CompletionListeners
          aioReadCompletionListener = new AioReadCompletionListener();
          aioWriteCompletionListener = new AioWriteCompletionListener();
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) {
              Tr.exit(tc, "init");
          }
      }
docs: /*
  @see com.ibm.wsspi.channelfw.Channel#init()