code: @Override
      public synchronized ChainData[] getRunningChains(Class<?> factoryClass) throws InvalidChannelFactoryException {
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) {
              Tr.entry(tc, "getRunningChains");
          }
          if (null == factoryClass) {
              throw new InvalidChannelFactoryException("Null factory class found");
          }
          String inputFactoryClassName = factoryClass.getName();
          if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
              Tr.debug(tc, "factory=" + inputFactoryClassName);
          }
  
          ChainDataImpl chainData = null;
          List<ChainData> chainDataList = new ArrayList<ChainData>();
  
          // Collect all runtime chains referring to the channel
          ChannelData[] channels = null;
          for (Chain chain : this.chainRunningMap.values()) {
              chainData = (ChainDataImpl) chain.getChainData();
              channels = chainData.getChannelList();
              // Look at each channel associated with this runtime chain.
              for (int i = 0; i < channels.length; i++) {
                  if (channels[i].getFactoryType().getName().equals(inputFactoryClassName)) {
                      chainDataList.add(chainData.getExternalChainData());
                  }
              }
          }
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) {
              Tr.exit(tc, "getRunningChains");
          }
          return chainDataList.toArray(new ChainData[chainDataList.size()]);
      }
docs: /*
  @see com.ibm.wsspi.channelfw.ChannelFramework#getRunningChains(Class)