I have a web application running in tomcat where I\'m using a ThreadPool (Java 5 ExecutorService) to run IO intensive operations in parallel to improve performance. I would
Could you try it the other way round? Use a data container that's stored in request scope and give it to the thread pool (perhaps put it into a queue, so that the thread pool can take one data container at a time, work on it, mark it as "done" and continue with the next one).