After some investigations on how to use quartz, we ended up improving our own scheduler
and messaging.
Both the messaging and scheduler service were kept. in any case, these services will
produce jobs in the JBPM_JOB table (tables JBPM_TIMER and JBPM_MESSAGE were removed)
Both async messages and timers will end up as jobs in the job queue table.
There will be one JobExecutor. One job executor can have multiple threads that are all
competing for jobs. There is a locking mechanism in place that should quard against
duplicate executions.
Also besides the async="true", you now have an async="exclusive".
this means that the job executor threads will execute all exclusive asynchronous jobs in a
synchronized fashion. this might be handy when e.g. multiple concurrent paths of
executions are created and in which all of these paths start with async behaviour. in
that case, many jobs are offered to the job executor after one transaction. This might
lead to contention since many job executor threads might start working on different jobs
of the same process instance. That might lead to contention cause you'll get many
optimistic locking exceptions.
There are still some exceptions with respect to messages and timers. But the bulk of the
test suite is running.
But i already want to commit for backup reasons. I tried to make sure that other
development is not impacted. Let me know if this is not the case and if you are
experiencing problems.
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3968942#...
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&a...