[Design of JBoss jBPM] - Another potential enhancement to jbpm
by argo516
We like jbpm Timer support, however, it does not work with multiple hosts running against a single database scenario.
By digging into JBPM code this appears to stem from the fact that SchedulerThread issues a simple query to get list of all due Timers and then executes them one by one (without locking anything). So it's possible that if two hosts fire SchedulerThread at the same time (this becomes increasingly more likely as the number of hosts grows) some Timers will be executed twice.
I created a new scheduler service that takes care of this problem by properly locking and scanning JBPM_TIMERS table where only one box works on any given timer.
Furthermore, instead of depending on a servlet to kick off the SchedulerThread I made it start automatically with jbpm runtime. This will allow jbpm timers to work outside of J2EE environment. However, I don't feel strongly about the way Timers are kicked off, so if people prefer to continue using the Servlet for compatibility reasons I am ok with that.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4121934#4121934
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4121934
18 years, 2 months
[Design of JBoss Build System] - JBossAS / Build System - Minutes 21 Jan 2008
by ALRubinger
Today we discussed a couple hitches with the existing build system within the AS, exposing a few cases encountered as a result of bringing EJB3 out of the AS. The consensus, to be executed:
* Copy of build scripts, configurations, etc from AS "testsuite" module to Maven "org.jboss:jboss-test"
* Deprecation of these moved components in AS "testsuite", forward development to continue in Maven component
* No AS component may depend on EJB3. This will allow us to resolve cyclic dependencies.
* All AS components must have working POM, Maven build, and Hudson runs to publish snapshots at least once weekly; this will allow IT to safely month-old snapshots while ensuring the latest is always in the repo. How does this also ensure the artifact gets placed into thirdparty? Or do we care? Paul?
* Each project/module is responsible for its own publishing to Maven repo. Note that build itself is implementation-specific to each module (and may be done in Ivy/Ant etc), but the resultant artifact must be published to the Maven repo to be accessible from other projects.
S,
ALR
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4121927#4121927
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4121927
18 years, 2 months
[Design of JBoss jBPM] - Potential enhancement to jbpm
by argo516
I want to submit a enhancement to jbpm and wanted to see what everybody thinks about it:
Everytime our application starts it deploys the latest process definition files (packages in the same *.jar). This allows us to always keep our code and process definitions in sync - for example if somebody modified and packaged a new process definition.
However, currently every time you deploy jbpm blindly creates new row(s) in the database. This is rather problematic considering that we run multiple hosts against the same db and they can start/stop many times a day (very decentralized model). This results in a lot of uneeded junk in the database.
The change I wrote actually compares the process definition parsed from the xml file against the lattest version in the database and only deploys if it's different. This way we still get the "just deploy each time you start" behavior, however without unneeded load on the db.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4121915#4121915
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4121915
18 years, 2 months