docs: public ThreadPool getThreadPool(String threadPoolName, int minSize, int maxSize)
     {
        if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) SibTr.entry(this, tc, "getThreadPool",
                                             new Object[]{threadPoolName, minSize, maxSize});
  
        ThreadPool threadPool = null;
  
        if (RuntimeInfo.isThinClient())
        {
           try
           {
              Class clazz = Class.forName(JFapChannelConstants.THIN_CLIENT_THREADPOOL_CLASS);
              threadPool = (ThreadPool) clazz.newInstance();
           }
           catch (Exception e)
           {
              FFDCFilter.processException(e, CLASS_NAME + ".getInstance",
                                          JFapChannelConstants.FRAMEWORK_GETTHREADPOOL_01,
                                          JFapChannelConstants.THIN_CLIENT_THREADPOOL_CLASS);
  
              if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) SibTr.debug(tc, "Unable to instantiate thin client thread pool", e);
  
              // Nothin we can do throw this on...
              throw new SIErrorException(e);
           }
        }
        else
        {
           try
           {
              Class clazz = Class.forName(JFapChannelConstants.RICH_CLIENT_THREADPOOL_CLASS);
              threadPool = (ThreadPool) clazz.newInstance();
           }
           catch (Exception e)
           {
              FFDCFilter.processException(e, CLASS_NAME + ".getInstance",
                                          JFapChannelConstants.FRAMEWORK_GETTHREADPOOL_02,
                                          JFapChannelConstants.RICH_CLIENT_THREADPOOL_CLASS);
  
              if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) SibTr.debug(tc, "Unable to instantiate rich client thread pool", e);
  
              // Nothin we can do throw this on...
              throw new SIErrorException(e);
           }
        }
  
        threadPool.initialise(threadPoolName, minSize, maxSize);
  
        if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) SibTr.exit(this, tc, "getThreadPool", threadPool);
        return threadPool;
     }