private static void initExceptionThreadPool ( ) { if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isEntryEnabled ( ) ) SibTr . entry ( tc , "initExceptionThreadPool" ) ; // Do a synchronous check to ensure once-only creation synchronized ( exceptionTPCreateSync ) { if ( exceptionThreadPool == null ) { // Get the maximum size for the thread pool, defaulting if // not specified or if the value cannot be parsed int maxThreads = Integer . parseInt ( ApiJmsConstants . EXCEPTION_MAXTHREADS_DEFAULT_INT ) ; String maxThreadsStr = RuntimeInfo . getProperty ( ApiJmsConstants . EXCEPTION_MAXTHREADS_NAME_INT , ApiJmsConstants . EXCEPTION_MAXTHREADS_DEFAULT_INT ) ; try { maxThreads = Integer . parseInt ( maxThreadsStr ) ; } catch ( NumberFormatException e ) { // No FFDC code needed, but we will exception this SibTr . exception ( tc , e ) ; } // Trace the value we will use if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isDebugEnabled ( ) ) SibTr . debug ( tc , ApiJmsConstants . EXCEPTION_MAXTHREADS_NAME_INT + ": " + Integer . toString ( maxThreads ) ) ; // Create the thread pool exceptionThreadPool = new ThreadPool ( ApiJmsConstants . EXCEPTION_THREADPOOL_NAME_INT , 0 , maxThreads ) ; } } if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isEntryEnabled ( ) ) SibTr . exit ( tc , "initExceptionThreadPool" ) ; }
PK59962 Ensure the existence of a single thread pool within the process