-
Enhancement
-
Resolution: Won't Do
-
Major
-
6.0.0
-
None
Hi.
I'm requesting the ability to configure business-central to operate in a BPMS6 deployment architecture where the RDBMS used to support the process/human task engines is separate from the database used for BAM events.
Via the optional system property of: jbpm.audit.jms.enabled=true, its currently possible to send BAM events to a queue. It's also currently possible to configure org.jbpm.process.audit.jms.AsyncAuditLogReceiver to persist BAM events to a database different from the database used to support the process/human task engines. Through load testing, it has been demonstrated that this architecture allows the jbpm process engine to operate faster (and is more consistent) than the default configuration.
In particular, I'm requesting that business-central allow for an optional configuration of it's persistence.xml where their could be two persistence units defined :
1) org.jbpm.domain
2) org.jbpm.audit
The mapping-file, Servicesorm.xml, along with the bam specific tables could optionally be moved to this secondary persistence unit, org.jbpm.audit. Subsequently, jbpm/jbpm-services/jbpm-kie-services/src/main/java/org/jbpm/kie/services/impl/RuntimeDataServiceImpl.java could be optionally configured to inject a TransactionalCommandService whose EntityManagerFactory used: org.jbpm.audit rather than the default: org.jbpm.domain.
Probably the last consideration would be to ensure that the business-central UI gracefully handles scenarios where BAM data is not currently present in the org.jbpm.audit database. When jbpm.audit.jms.enabled=true is set, there is no certainty as to when the BAM events would actually get persisted to the separated BAM database.
thank! jeff