Announcement Announcement Module
No announcement yet.
Parallel processing in application server Page Title Module
Move Remove Collapse
Conversation Detail Module
  • Filter
  • Time
  • Show
Clear All
new posts

  • Parallel processing in application server

    Our application has parts that need to run in parallel within an Application Server. This includes JMS queus and topics, scheduled jobs (Quartz), and silimar functionality. These parts need their own dedicated resources so they don't starve each other. We are currently using several ExecutorService thread pools.

    It has been brough to our attention that using unmanged threads within a container is a bad and non-standard solution. In addition, we would like the added functionality of dynamically scaling the size of the pools. It seemed that leaveraging WorkManager would sovle both problems, utilizing Spring's WorkManagerTaskExecutor between implementations.

    We are using JBoss AS 5.1 and WebSpere AS 7. The JBoss 5.1 WorkManager is not available via JNDI (unlike in WebSphere AS). Furthermore, it appears that the JBoss WorkManager is reserved for use for Resource Adapaters ( An alternative suggestion is to create a custom MBean to achive this functionality.

    What is the Spring way for achiving parallel processing? Is there a better way to solve these problems?

  • #2
    Spring supports thread pools via the TaskExecutor and TaskScheduler abstractions. You will see these as configurable strategies in many places, such as the JMS MessageListener container and for Spring Integration message endpoints. To deal with the issue of managed threads in a container that you have mentioned, Spring provides support for WorkManager delegation for both strategies. You can learn more about that support here:

    Within that section, you might want to do a search for "WorkManager".

    Hope that helps.