In my current project we were facing an issue where our SOA application running on weblogic servers runs out of Processing Threads when high load coming and resulted in Active Requests piling up and hence degradation in performance and failure.
On further troubleshooting the issue there is a Oracle Doc ID found 1935014.1 which explains the same issue and suggested to set a MinPoolSize argument for all MS so that threads will be created faster in order to serve incoming request.Hence below are the steps which can be implemented;
- Open Weblogic console
- go to MS -> Server start -> take the session
- Add below values in start up arguments
-Dweblogic.threadpool.MinPoolSize=100 - Restart the server
- Same steps needs to be repeated for rest of the MS in the weblogic domain.
Below is the Oracle Doc ID which explains the same problem;
SOA Worker Threads Ramping Up Slowly on Weblogic / Exalogic Platforms (Doc ID 1935014.1)
After setting this value it actually means;
– 100 Threads initially created to serve 100 concurrent request
– When the 101st request comes in (when all 100 threads are processing and no free thread available), then the next 100 threads are created. A total of 200 threads will be available for processing requests.
– When all 200 threads are processing requests and the 201st request comes in, then the next 100 threads are created. A total of 300 threads will be available for processing requests and so on.
So threads are created in batches according to the -Dweblogic.threadpool.MinPoolSize size setting.