org.jbpm.runtime.manager.impl
Class SingletonRuntimeManager
java.lang.Object
org.jbpm.runtime.manager.impl.AbstractRuntimeManager
org.jbpm.runtime.manager.impl.SingletonRuntimeManager
- All Implemented Interfaces:
- org.kie.api.runtime.manager.RuntimeManager, org.kie.internal.runtime.manager.InternalRuntimeManager
public class SingletonRuntimeManager
- extends AbstractRuntimeManager
This RuntimeManager is backed by a "Singleton" strategy, meaning that only one RuntimeEngine instance will
exist for for the given RuntimeManager instance. The RuntimeEngine will be synchronized to make sure it will work
properly in multi-threaded environments. However, this might cause some performance issues due to sequential execution.
An important aspect of this manager is that it will persists it's identifier as a temporary file to keep track of the
KieSession it was using to maintain its state: for example, the session state including (drools) facts, etc.
The mentioned file is named as follows:
manager.getIdentifier()-jbpmSessionId.ser
For example, for default named manager it will be:
default-singleton-jbpmSessionId.ser
The location of the file will be one of the following, it is resolved in below order:
- system property named: jbpm.data.dir
- system property named: jboss.server.data.dir - shall be used by default on JBoss AS
- system property named: java.io.tmpdir
In case there is a need to reset the state, simply removing of the *-jbpm.SessionId.ser from the mentioned location
will do the trick.
|
Constructor Summary |
SingletonRuntimeManager()
|
SingletonRuntimeManager(org.kie.api.runtime.manager.RuntimeEnvironment environment,
org.kie.internal.runtime.manager.SessionFactory factory,
org.kie.internal.runtime.manager.TaskServiceFactory taskServiceFactory,
String identifier)
|
|
Method Summary |
void |
close()
|
void |
disposeRuntimeEngine(org.kie.api.runtime.manager.RuntimeEngine runtime)
|
org.kie.internal.runtime.manager.SessionFactory |
getFactory()
|
protected String |
getLocation()
|
protected Long |
getPersistedSessionId(String location,
String identifier)
Retrieves session id from serialized file named jbpmSessionId.ser from given location. |
org.kie.api.runtime.manager.RuntimeEngine |
getRuntimeEngine(org.kie.api.runtime.manager.Context context)
|
org.kie.internal.runtime.manager.TaskServiceFactory |
getTaskServiceFactory()
|
void |
init()
|
protected void |
persistSessionId(String location,
String identifier,
Long ksessionId)
Stores gives ksessionId in a serialized file in given location under jbpmSessionId.ser file name |
void |
setFactory(org.kie.internal.runtime.manager.SessionFactory factory)
|
void |
setTaskServiceFactory(org.kie.internal.runtime.manager.TaskServiceFactory taskServiceFactory)
|
void |
validate(org.kie.api.runtime.KieSession ksession,
org.kie.api.runtime.manager.Context<?> context)
|
| Methods inherited from class org.jbpm.runtime.manager.impl.AbstractRuntimeManager |
attachManager, canDestroy, checkPermission, close, configureRuntimeOnTaskService, getCacheManager, getDeploymentDescriptor, getEnvironment, getIdentifier, getTransactionManager, hasEnvironmentEntry, isClosed, registerDisposeCallback, registerItems, removeRuntimeFromTaskService, setCacheManager, setDeploymentDescriptor, setEnvironment, setIdentifier, setSecurityManager |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
SingletonRuntimeManager
public SingletonRuntimeManager()
SingletonRuntimeManager
public SingletonRuntimeManager(org.kie.api.runtime.manager.RuntimeEnvironment environment,
org.kie.internal.runtime.manager.SessionFactory factory,
org.kie.internal.runtime.manager.TaskServiceFactory taskServiceFactory,
String identifier)
init
public void init()
- Specified by:
init in class AbstractRuntimeManager
getRuntimeEngine
public org.kie.api.runtime.manager.RuntimeEngine getRuntimeEngine(org.kie.api.runtime.manager.Context context)
validate
public void validate(org.kie.api.runtime.KieSession ksession,
org.kie.api.runtime.manager.Context<?> context)
throws IllegalStateException
- Throws:
IllegalStateException
disposeRuntimeEngine
public void disposeRuntimeEngine(org.kie.api.runtime.manager.RuntimeEngine runtime)
close
public void close()
- Specified by:
close in interface org.kie.api.runtime.manager.RuntimeManager- Overrides:
close in class AbstractRuntimeManager
getPersistedSessionId
protected Long getPersistedSessionId(String location,
String identifier)
- Retrieves session id from serialized file named jbpmSessionId.ser from given location.
- Parameters:
location - directory where jbpmSessionId.ser file should beidentifier - of the manager owning this ksessionId
- Returns:
- sessionId if file was found otherwise 0
persistSessionId
protected void persistSessionId(String location,
String identifier,
Long ksessionId)
- Stores gives ksessionId in a serialized file in given location under jbpmSessionId.ser file name
- Parameters:
location - directory where serialized file should be storedidentifier - of the manager owning this ksessionIdksessionId - value of ksessionId to be stored
getLocation
protected String getLocation()
getFactory
public org.kie.internal.runtime.manager.SessionFactory getFactory()
setFactory
public void setFactory(org.kie.internal.runtime.manager.SessionFactory factory)
getTaskServiceFactory
public org.kie.internal.runtime.manager.TaskServiceFactory getTaskServiceFactory()
setTaskServiceFactory
public void setTaskServiceFactory(org.kie.internal.runtime.manager.TaskServiceFactory taskServiceFactory)
Copyright © 2001-2015 JBoss by Red Hat. All Rights Reserved.