public class JpaProcessPersistenceContext
extends org.drools.persistence.jpa.JpaPersistenceContext
implements org.jbpm.persistence.api.ProcessPersistenceContext
| Constructor and Description |
|---|
JpaProcessPersistenceContext(javax.persistence.EntityManager em,
boolean useJTA,
boolean locking,
String lockingMode,
org.drools.persistence.api.TransactionManager txm) |
JpaProcessPersistenceContext(javax.persistence.EntityManager em,
org.drools.persistence.api.TransactionManager txm) |
| Modifier and Type | Method and Description |
|---|---|
org.jbpm.persistence.api.PersistentProcessInstance |
findProcessInstanceInfo(Long processId) |
Long |
getProcessInstanceByCorrelationKey(org.kie.internal.process.CorrelationKey correlationKey)
With regards to locking, the method is not always called during a transaction, which means
that including logic to lock the query will cause exceptions and is not feasible.
|
List<Long> |
getProcessInstancesWaitingForEvent(String type)
This method is used by the
JPASignalManager in order to load ProcessInstance instances
into the ProcessInstanceManager cache so that they can then be signalled. |
org.jbpm.persistence.api.PersistentCorrelationKey |
persist(org.jbpm.persistence.api.PersistentCorrelationKey correlationKeyInfo) |
org.jbpm.persistence.api.PersistentProcessInstance |
persist(org.jbpm.persistence.api.PersistentProcessInstance processInstanceInfo) |
void |
remove(org.jbpm.persistence.api.PersistentProcessInstance processInstanceInfo) |
close, findSession, findWorkItem, getEntityManager, isOpen, joinTransaction, lock, lock, merge, persist, persist, remove, removepublic JpaProcessPersistenceContext(javax.persistence.EntityManager em,
org.drools.persistence.api.TransactionManager txm)
public JpaProcessPersistenceContext(javax.persistence.EntityManager em,
boolean useJTA,
boolean locking,
String lockingMode,
org.drools.persistence.api.TransactionManager txm)
public org.jbpm.persistence.api.PersistentProcessInstance persist(org.jbpm.persistence.api.PersistentProcessInstance processInstanceInfo)
persist in interface org.jbpm.persistence.api.ProcessPersistenceContextpublic org.jbpm.persistence.api.PersistentProcessInstance findProcessInstanceInfo(Long processId)
findProcessInstanceInfo in interface org.jbpm.persistence.api.ProcessPersistenceContextpublic void remove(org.jbpm.persistence.api.PersistentProcessInstance processInstanceInfo)
remove in interface org.jbpm.persistence.api.ProcessPersistenceContextpublic List<Long> getProcessInstancesWaitingForEvent(String type)
JPASignalManager in order to load ProcessInstance instances
into the ProcessInstanceManager cache so that they can then be signalled.
Unfortunately, with regards to locking, the method is not always called during a transaction, which means
that including logic to lock the query will cause exceptions and is not feasible.
Because the SingleSessionCommandService design is based around a synchronized execute(...) method,
it's not possible for one thread to create a process instance while another thread simultaneously tries to
signal it. That means that a
phantom read
race condition, that might be caused by a lack of pessimistic locking on this query, isn't possible.
Of course, if you're using multiple ksessions to simultaneoulsy interact with the same process instance,
all bets are off. This however is true for almost everything involving process instances, so that it's not
worth discussing.
getProcessInstancesWaitingForEvent in interface org.jbpm.persistence.api.ProcessPersistenceContextpublic org.jbpm.persistence.api.PersistentCorrelationKey persist(org.jbpm.persistence.api.PersistentCorrelationKey correlationKeyInfo)
persist in interface org.jbpm.persistence.api.ProcessPersistenceContextpublic Long getProcessInstanceByCorrelationKey(org.kie.internal.process.CorrelationKey correlationKey)
getProcessInstancesWaitingForEvent(String) documentation
for more information. The same logic applies to this method.
getProcessInstanceByCorrelationKey in interface org.jbpm.persistence.api.ProcessPersistenceContextCopyright © 2001–2018 JBoss by Red Hat. All rights reserved.