Red Hat Bugzilla – Bug 985309
Missing tools and libraries needed for BRMS/BPMS clustering
Last modified: 2014-08-06 16:11:33 EDT
In order to get BRMS/BPMS cluster running, several third party tools & libraries are needed, namely:
apache helix (http://helix.incubator.apache.org/) BRMS/BPMS
apache zookeeper (http://zookeeper.apache.org/) BRMS/BPMS
quartz scheduler (http://quartz-scheduler.org/) BPMS only
See this blog post  for more details.
User has to download them and integrate with BRMS/BPMS on his own.
=> I would expect to have these tools as a part of BRMS/BPMS distribution with some integration already done and with basic examples of usage (if possible).
Yes, they are needed libraries. How did we miss them ?
I suspected they are included in the community beta...
(In reply to Radovan Synek from comment #0)
> In order to get BRMS/BPMS cluster running, several third party tools &
> libraries are needed, namely:
> apache helix (http://helix.incubator.apache.org/) BRMS/BPMS
> apache zookeeper (http://zookeeper.apache.org/) BRMS/BPMS
> quartz scheduler (http://quartz-scheduler.org/) BPMS only
> See this blog post  for more details.
> User has to download them and integrate with BRMS/BPMS on his own.
> => I would expect to have these tools as a part of BRMS/BPMS distribution
> with some integration already done and with basic examples of usage (if
>  http://mswiderski.blogspot.com.br/2013/06/clustering-in-jbpm-v6.html
I checked the DR6, the 3 jars(helix, zookeeper, quartz) are included in WEB-INF/lib.
So I suppose you are saying that we would need to provide the scripts and configuration for the product, right?
> I checked the DR6, the 3 jars(helix, zookeeper, quartz) are included in
Jars inside WEB-INF/lib are probably just API needed by jboss-brms/business-central. The cluster setup needs whole distribution of helix and zookeeper. Regarding quartz, there are missing DDL scripts, which are again part of complete quartz distribution.
> So I suppose you are saying that we would need to provide the scripts and
> configuration for the product, right?
What I would expect is providing some scripts to ease the cluster setup - I understand that it's not possible to provide complete setup, because we don't know how many nodes client wants, but what about creating some example script for basic helix and zookeeper setup (the same as in , two nodes only)?
Similarly for Quartz - to provide example configuration, maybe create the datasource.
This is just an idea, which can be discussed.
For ZooKeeper there isn't much we can do other than have a documented receipt for simple cases (probably we already have something like that, once Fuse uses ZK extensively).
Now about Apache Helix, for community (6.1) we'll start to implement a better automation of its configuration, with the ultimate goal to hide all config details from users. I can't promise much right now, but in a couple of week I can give a better feedback on this automation and you'll be able to check if would be convenient or not back-port it to 6.0. If not possible we can provide the sample script.
As it comes to Quartz, we could bundle in quartz related DDL scripts. What would be good to agree between community and product is the way they should be shipped. Just to avoid different ways of delivering such assets to the users.
In general, I see this as part of the installer that shall be used to set this up for users completely. I believe that it fits to what Alexandre described in comment #6.
Just to make it clear, regarding Apache Helix automation: it's not related to installation script, the solution proposed will be (well, at least we'll try to make it happen) completely code based and transparent - the system will automagically setup itself (cluster, resources, nodes and etc).
Feedback summary from Jeffrey Bride
- Reduce as much as possible the number of shipped jars
- Some jars might not be required: bitronix, restlet and seam-transactions
with this commit https://github.com/droolsjbpm/jbpm/commit/51aa3c1b6c06fce05c1029d5b3e27f8abece431e there are now DDL scripts for both jbpm, task and quartz tables available for most common data bases. With that hibernate auto ddl might be set to validate only when DDL are executed on data base in advance. They are stored in jbpm-installer/db/ddl-scripts but for product it might be copied/moved to more proper location as installer is not used.
These DDL scripts were built with hibernate tools based on persistence.xml using proper dialect so they should be exactly the same as when created by hbm.ddl.auto.
That should be all from quartz point of view but leaving BZ open for further work on helix and zookeeper which I believe will be for 6.1.
marking this bz as modified as from quartz point of view DDL scripts are provided and further improvements will be tracked as part of https://bugzilla.redhat.com/show_bug.cgi?id=1010228
Verified on BPMS-6.0.0.ER4 - Helix, Zookeeper and Quartz DDL are contained in supplementary tools.