docs: @Override
      public void start() throws ChannelException {
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) {
              Tr.entry(tc, "start");
          }
          if (this.stopFlag) {
              // only start once
              this.stopFlag = false;
              if (this.config.isInbound()) {
                  // Socket is already open, just need to start accepting connections
                  try {
                      // PK60924 - check for a restart path requiring the re-init
                      if (null == this.endPoint.getServerSocket()) {
                          initializePort();
                      }
                      acceptReqProcessor.get().registerPort(this.endPoint);
                      this.preparingToStop = false;
  
                      String IPvType = "IPv4";
                      if (this.endPoint.getServerSocket().getInetAddress() instanceof Inet6Address) {
                          IPvType = "IPv6";
                      }
  
                      if (this.config.getHostname() == null) {
                          this.displayableHostName = "*  (" + IPvType + ")";
                      } else {
                          this.displayableHostName = this.endPoint.getServerSocket().getInetAddress().getHostName() + "  (" + IPvType + ": "
                                                     + this.endPoint.getServerSocket().getInetAddress().getHostAddress() + ")";
                      }
                      Tr.info(tc, TCPChannelMessageConstants.TCP_CHANNEL_STARTED,
                              new Object[] { getExternalName(), this.displayableHostName, String.valueOf(this.endPoint.getListenPort()) });
  
                  } catch (IOException e) {
                      FFDCFilter.processException(e, getClass().getName() + ".start", "100", this);
                      if (TraceComponent.isAnyTracingEnabled() && tc.isEventEnabled()) {
                          Tr.event(tc, "TCP Channel: " + getExternalName() + "- Problem occurred while starting TCP Channel: " + e.getMessage());
                      }
                      ChannelException x = new ChannelException("TCP Channel: " + getExternalName() + "- Problem occurred while starting channel: " + e.getMessage());
                      // Adjust flag so follow up attempt is possible.
                      this.stopFlag = true;
                      throw x;
                  }
              }
              if (this.config.getDumpStatsInterval() > 0) {
                  createStatisticsThread();
              }
          }
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) {
              Tr.exit(tc, "start");
          }
      }