Starting threads within the application server can be difficult, we often detect that there are better solutions, the resource handling is often not so easy as expected.
Often there is a async solution with JMS possible, but I wait also for EJB3.1 and future objects.
A resource adapter might alos a possible solution.
But what you mean by 'our application' it help to give a more specific answer if you provide details about the current implementation. What do you use EJB, servlet ....?
The application is a web application along with asynchronous background processing. No EJBs but do have servlets, web services, quartz jobs, JMS queues/topics. Servlets, web services, and centralized file storage asynchronously fire jobs/messages. Quartz process x jobs in parallel, and JMS queues/topics process y messages in parallel. Currently the processing is done in the application server using Spring wrappers around thread pools, say pool x and pool y.
Quarz Jobs, Queues and topics are managed by JBoss and this is a normal usage.
About Spring I'm unsure, I never used it. Threads here might be allowed by spec.