Bug 743417 - use separate JPA EntityManagerFactory for jbpm-bam
Summary: use separate JPA EntityManagerFactory for jbpm-bam
Keywords:
Status: ASSIGNED
Alias: None
Product: JBoss Enterprise BRMS Platform 5
Classification: JBoss
Component: jBPM 5
Version: BRMS 5.3.0.GA
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
: ---
Assignee: Kris Verlaenen
QA Contact: Radovan Synek
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2011-10-04 20:27 UTC by Jeffrey Bride
Modified: 2022-01-05 05:22 UTC (History)
0 users

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed:
Type: ---


Attachments (Terms of Use)

Description Jeffrey Bride 2011-10-04 20:27:16 UTC
out-of-the-box, BRMS is configured with a single persistence.xml that bundles jbpm-bam with core jbpm5 SessionInfo, WorkItemInfo, and ProcessInstanceInfo.

since BAM is functionally different than core jbpm5, recommend that at a minimum, jbpm-bam be managed by a separate EntityManagerFactory.  

Doing so will necessitate a new extension of WorkingMemoryLogger.  Please see attachment for an example extension to WorkingMemoryLogger.

Comment 1 Jeff DeLong 2011-10-05 19:41:14 UTC
Even better would be to send BAM "events" via JMS to another service that persists the BAM data. This (along with potentially other design changes) would allow BAM processing to be removed from the process runtime environment. Doing so would greatly reduce the impact on process instance creation, etc. and allow a BAM server to be more optimally configured.

Also, system configuration should allow BAM functionality to be turned off completely if the customer wishes to do so, thereby eliminating all BAM related load.

Comment 2 Jeff DeLong 2011-10-05 19:43:58 UTC
I see Jeff B captured this last idea in 743419.

Comment 3 Kris Verlaenen 2012-01-02 18:04:58 UTC
I'll look at supporting both use cases, where you can set an entity manager directly (when registering the listener), or you can just reuse the one in the environment (if none is provided).

Note that the BAM events already are implemented outside the core engine itself, the history logger is a normal listener that you need to register (and so you have no impact at all if you don't need BAM, just don't register the listener).


Note You need to log in before you can comment on or make changes to this bug.