code: @Override
      public synchronized ChainData[] getRunningChains() {
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) {
              Tr.entry(tc, "getRunningChains");
          }
  
          ChainData chainDataArray[] = new ChainData[chainRunningMap.size()];
          ChainDataImpl chainData = null;
          int index = 0;
  
          Iterator<Chain> chainIter = chainRunningMap.values().iterator();
          while (chainIter.hasNext()) {
              chainData = (ChainDataImpl) chainIter.next().getChainData();
              // Extract the external version, hiding all child channel data objects.
              chainDataArray[index++] = chainData.getExternalChainData();
          }
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) {
              Tr.exit(tc, "getRunningChains");
          }
          return chainDataArray;
      }
docs: /*
  @see com.ibm.wsspi.channelfw.ChannelFramework#getRunningChains()