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:
- RuntimeManager, org.kie.internal.runtime.manager.InternalRuntimeManager
public class SingletonRuntimeManager
- extends AbstractRuntimeManager
RuntimeManager that is backed by "Singleton" strategy meaning only one RuntimeEngine
instance will
exist for for given RuntimeManager instance. The RuntimeEngine will be synchronized to make sure it will work
properly in multi-thread environments but might cause some performance issues due to sequential execution.
Important aspect of this manager is that it will persists it's identifier as temporary file to keep track of the
KieSession
it was using to maintain its state - for example session state such as 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 can 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.internal.runtime.manager.RuntimeEnvironment environment,
org.kie.internal.runtime.manager.SessionFactory factory,
org.kie.internal.runtime.manager.TaskServiceFactory taskServiceFactory,
String identifier)
|
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.internal.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 RuntimeEngine getRuntimeEngine(Context context)
validate
public void validate(KieSession ksession,
Context<?> context)
throws IllegalStateException
- Throws:
IllegalStateException
disposeRuntimeEngine
public void disposeRuntimeEngine(RuntimeEngine runtime)
close
public void close()
- Specified by:
close
in interface RuntimeManager
- Overrides:
close
in class AbstractRuntimeManager
getPersistedSessionId
protected int 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,
int 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-2013 JBoss by Red Hat. All Rights Reserved.