Execution is clearly serialised per session. I will give each thread its own session and see how I get on. I wonder, now, why I'd want multiple timer threads per session as I guess their execution will be syncronised on any process activities. Am I right?
If I have a pool of threads, each with a session, I'm hoping throughput will be OK. However I may still want to make service tasks asynchonous in order to commit database activities per task because jbpm will only commit when it hits a wait. Am I correct in assuming that I'll have to use the same session in my asynch thread?