public class BpelServerImpl extends java.lang.Object implements BpelServer, Scheduler.JobProcessor
The BPEL server implementation.
This implementation is intended to be thread safe. The key concurrency mechanism is a "management" read/write lock that synchronizes all management operations (they require "write" access) and prevents concurrent management operations and processing (processing requires "read" access). Write access to the lock is scoped to the method, while read access is scoped to a transaction.
Modifier and Type | Class and Description |
---|---|
static interface |
BpelServerImpl.ContextsAware
A polled runnable instance that implements this interface will be set
with the contexts before the run() method is called.
|
static class |
BpelServerImpl.PolledRunnableProcessor
This wraps up the executor service for polled runnables.
|
Modifier and Type | Field and Description |
---|---|
protected BpelDatabase |
_db |
static java.lang.String |
DEFERRED_PROCESS_INSTANCE_CLEANUP_DISABLED_NAME |
Constructor and Description |
---|
BpelServerImpl() |
Modifier and Type | Method and Description |
---|---|
void |
acquireTransactionLocks() |
void |
cleanupProcess(ProcessConf pconf) |
protected BpelEngineImpl |
createBpelEngineImpl(Contexts contexts) |
protected BpelProcess |
createBpelProcess(ProcessConf conf) |
protected boolean |
deleteProcessDAO(javax.xml.namespace.QName pid,
boolean isInMemory) |
Contexts |
getContexts() |
DebuggerContext |
getDebugger(javax.xml.namespace.QName pid) |
BpelEngine |
getEngine()
Get the
BpelEngine interface for handling transaction operations. |
boolean |
hasActiveInstances(javax.xml.namespace.QName pid) |
void |
init()
Initialize the BPEL engine.
|
void |
onScheduledJob(Scheduler.JobInfo jobInfo)
Implements execution of the job.
|
void |
register(ProcessConf conf)
Register a process with the server.
|
void |
registerBpelEventListener(BpelEventListener listener)
Register a global listener to receive
BpelEvent s froom all
processes. |
void |
registerExternalVariableEngine(ExternalVariableModule eve) |
void |
registerMessageExchangeInterceptor(MessageExchangeInterceptor interceptor)
Register a global message exchange interceptor.
|
void |
setBindingContext(BindingContext bc)
Configure the with a binding context.
|
void |
setConfigProperties(java.util.Properties configProperties) |
void |
setCronScheduler(CronScheduler cronScheduler) |
void |
setDaoConnectionFactory(BpelDAOConnectionFactory daoCF)
Set the DAO connection factory.
|
void |
setDehydrationPolicy(DehydrationPolicy dehydrationPolicy) |
void |
setEndpointReferenceContext(EndpointReferenceContext eprContext)
Configure the with an endpoint-reference (EPR) context.
|
void |
setHydrationLazy(boolean hydrationLazy) |
void |
setHydrationLazyMinimumSize(int hydrationLazyMinimumSize) |
void |
setInMemDaoConnectionFactory(BpelDAOConnectionFactory daoCF) |
void |
setInstanceThrottledMaximumCount(int instanceThrottledMaximumCount) |
void |
setMessageExchangeContext(MessageExchangeContext mexContext)
Configure the with a message-exchange context.
|
void |
setMigrationTransactionTimeout(int migrationTransactionTimeout) |
void |
setProcessThrottledMaximumCount(int hydrationThrottledMaximumCount) |
void |
setProcessThrottledMaximumSize(long hydrationThrottledMaximumSize) |
void |
setScheduler(Scheduler scheduler)
Configure the with a scheduler.
|
void |
shutdown()
Called to shutdown the BPEL egnine.
|
void |
start()
Start the BPEL engine.
|
void |
stop()
Stop the BPEL engine: results in the cessation of process
execution.
|
void |
unregister(javax.xml.namespace.QName pid)
Unregister a process from the server.
|
void |
unregisterBpelEventListener(BpelEventListener listener)
Unregister a global listener from receive
BpelEvent s from all
processes. |
void |
unregisterMessageExchangeInterceptor(MessageExchangeInterceptor interceptor)
Unregister a global message exchange interceptor.
|
public static final java.lang.String DEFERRED_PROCESS_INSTANCE_CLEANUP_DISABLED_NAME
protected BpelDatabase _db
public Contexts getContexts()
public void start()
BpelServer
start
in interface BpelServer
public void registerExternalVariableEngine(ExternalVariableModule eve)
public void registerBpelEventListener(BpelEventListener listener)
BpelEvent
s froom all
processes.listener
- public void unregisterBpelEventListener(BpelEventListener listener)
BpelEvent
s from all
processes.listener
- public void stop()
BpelServer
stop
in interface BpelServer
public void init() throws BpelEngineException
BpelServer
init
in interface BpelServer
BpelEngineException
protected BpelEngineImpl createBpelEngineImpl(Contexts contexts)
public void shutdown() throws BpelEngineException
BpelServer
shutdown
in interface BpelServer
BpelEngineException
public BpelEngine getEngine()
BpelServer
BpelEngine
interface for handling transaction operations.getEngine
in interface BpelServer
BpelEngine
interfaccepublic void register(ProcessConf conf)
BpelServer
register
in interface BpelServer
protected BpelProcess createBpelProcess(ProcessConf conf)
public void unregister(javax.xml.namespace.QName pid) throws BpelEngineException
BpelServer
unregister
in interface BpelServer
pid
- process to unregisterBpelEngineException
public void registerMessageExchangeInterceptor(MessageExchangeInterceptor interceptor)
interceptor
- message-exchange interceptorpublic void unregisterMessageExchangeInterceptor(MessageExchangeInterceptor interceptor)
interceptor
- message-exchange interceptorprotected boolean deleteProcessDAO(javax.xml.namespace.QName pid, boolean isInMemory)
public void onScheduledJob(Scheduler.JobInfo jobInfo) throws Scheduler.JobProcessorException
Scheduler.JobProcessor
onScheduledJob
in interface Scheduler.JobProcessor
jobInfo
- the job informationScheduler.JobProcessorException
public void setDehydrationPolicy(DehydrationPolicy dehydrationPolicy)
public void setConfigProperties(java.util.Properties configProperties)
public void setMessageExchangeContext(MessageExchangeContext mexContext) throws BpelEngineException
BpelServer
setMessageExchangeContext
in interface BpelServer
mexContext
- MessageExchangeContext
implementationBpelEngineException
MessageExchangeContext
public void setScheduler(Scheduler scheduler) throws BpelEngineException
BpelServer
setScheduler
in interface BpelServer
BpelEngineException
public void setCronScheduler(CronScheduler cronScheduler) throws BpelEngineException
BpelEngineException
public void setEndpointReferenceContext(EndpointReferenceContext eprContext) throws BpelEngineException
BpelServer
setEndpointReferenceContext
in interface BpelServer
eprContext
- EndpointReferenceContext
implementationBpelEngineException
EndpointReferenceContext
public void setDaoConnectionFactory(BpelDAOConnectionFactory daoCF) throws BpelEngineException
daoCF
- BpelDAOConnectionFactory
implementation.BpelEngineException
public void setInMemDaoConnectionFactory(BpelDAOConnectionFactory daoCF)
public void setBindingContext(BindingContext bc)
BpelServer
setBindingContext
in interface BpelServer
bc
- BindingContext
implementationBindingContext
public DebuggerContext getDebugger(javax.xml.namespace.QName pid) throws BpelEngineException
getDebugger
in interface BpelServer
pid
- The process definition QNameBpelEngineException
- if we could not find the processpublic boolean hasActiveInstances(javax.xml.namespace.QName pid)
public void setHydrationLazy(boolean hydrationLazy)
public void setProcessThrottledMaximumSize(long hydrationThrottledMaximumSize)
public void setProcessThrottledMaximumCount(int hydrationThrottledMaximumCount)
public void setHydrationLazyMinimumSize(int hydrationLazyMinimumSize)
public void setInstanceThrottledMaximumCount(int instanceThrottledMaximumCount)
public void acquireTransactionLocks()
acquireTransactionLocks
in interface BpelServer
public void cleanupProcess(ProcessConf pconf) throws BpelEngineException
cleanupProcess
in interface BpelServer
BpelEngineException
public void setMigrationTransactionTimeout(int migrationTransactionTimeout)