code: private synchronized void createReconstituteThreadPool()
      {
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.entry(tc, "createReconstituteThreadPool");
  
          if (_reconstituteThreadpool == null)
          {
              int maxThreadPoolSize;
  
              if (messageProcessor.getMessagingEngine().datastoreExists()) {
                  //data store. Proceed and calcualte number of threads to use for reconstitution
  
                  //get the thread pool size from the custom property
                  maxThreadPoolSize = messageProcessor.getCustomProperties().get_max_reconstitute_threadpool_size();
  
                  int noOfCores = CpuInfo.getAvailableProcessors();
  
                  if (maxThreadPoolSize <= 0)
                  {
                      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
                          SibTr.info(tc, "INVALID_RECONSTITUTE_THREADPOOL_SIZE_CWSIP0068", new Object[] { maxThreadPoolSize });
                      maxThreadPoolSize = noOfCores;
                  }
  
                  if (maxThreadPoolSize > noOfCores)
                      SibTr.warning(tc, "INVALID_RECONSTITUTE_THREADPOOL_SIZE_CWSIP0069");
  
              }
              else {
                  // File store: Don't use multiple threads as it may lead to contention
                  maxThreadPoolSize = 1;
              }
  
              if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
                  SibTr.info(tc, "MAX_RECONSTITUTE_THREADPOOL_SIZE_CWSIP0070", new Object[] { maxThreadPoolSize });
  
              _reconstituteThreadpool = new ThreadPoolExecutor(maxThreadPoolSize, maxThreadPoolSize, Long.MAX_VALUE, TimeUnit.MILLISECONDS,
                              new LinkedBlockingQueue<Runnable>());
          }
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.exit(tc, "createReconstituteThreadPool");
      }
docs: If the reconstitute thread pool hasn't been created,
  create one here.
  maxThreadPoolsize is calculated as (numberOfProcessors * 2)