spring-batchjprofilerspring-batch-job-monitoring

Understanding JProfiler Threads


I'm working on a Spring Batch Application where it is fetching data from the Oracle database. It contains around 20L of data. I implemented AsynchronousTaskExecutor with a concurrency limit of 20, the throttle limit is 10. For data source it is - spring.datasource.max-active=50

Following is the Thread Graph (JProfiler) for my application. It shows more threads in a blocked and waiting state. I want to understand why it's like this. Also, how can I improve the performance of the batch?

enter image description here


Solution

  • You have to use the views in the "Monitors & Locks" section to get more information about locking sections. If you record monitors there, the threads view (in your screen shot) will have tool tips with stack traces on waiting and blocking states.