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
BpelEvents 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
BpelEvents 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()
BpelServerstart in interface BpelServerpublic void registerExternalVariableEngine(ExternalVariableModule eve)
public void registerBpelEventListener(BpelEventListener listener)
BpelEvents froom all
processes.listener - public void unregisterBpelEventListener(BpelEventListener listener)
BpelEvents from all
processes.listener - public void stop()
BpelServerstop in interface BpelServerpublic void init()
throws BpelEngineException
BpelServerinit in interface BpelServerBpelEngineExceptionprotected BpelEngineImpl createBpelEngineImpl(Contexts contexts)
public void shutdown()
throws BpelEngineException
BpelServershutdown in interface BpelServerBpelEngineExceptionpublic BpelEngine getEngine()
BpelServerBpelEngine interface for handling transaction operations.getEngine in interface BpelServerBpelEngine interfaccepublic void register(ProcessConf conf)
BpelServerregister in interface BpelServerprotected BpelProcess createBpelProcess(ProcessConf conf)
public void unregister(javax.xml.namespace.QName pid)
throws BpelEngineException
BpelServerunregister in interface BpelServerpid - process to unregisterBpelEngineExceptionpublic 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.JobProcessoronScheduledJob in interface Scheduler.JobProcessorjobInfo - the job informationScheduler.JobProcessorExceptionpublic void setDehydrationPolicy(DehydrationPolicy dehydrationPolicy)
public void setConfigProperties(java.util.Properties configProperties)
public void setMessageExchangeContext(MessageExchangeContext mexContext) throws BpelEngineException
BpelServersetMessageExchangeContext in interface BpelServermexContext - MessageExchangeContext implementationBpelEngineExceptionMessageExchangeContextpublic void setScheduler(Scheduler scheduler) throws BpelEngineException
BpelServersetScheduler in interface BpelServerBpelEngineExceptionpublic void setCronScheduler(CronScheduler cronScheduler) throws BpelEngineException
BpelEngineExceptionpublic void setEndpointReferenceContext(EndpointReferenceContext eprContext) throws BpelEngineException
BpelServersetEndpointReferenceContext in interface BpelServereprContext - EndpointReferenceContext implementationBpelEngineExceptionEndpointReferenceContextpublic void setDaoConnectionFactory(BpelDAOConnectionFactory daoCF) throws BpelEngineException
daoCF - BpelDAOConnectionFactory implementation.BpelEngineExceptionpublic void setInMemDaoConnectionFactory(BpelDAOConnectionFactory daoCF)
public void setBindingContext(BindingContext bc)
BpelServersetBindingContext in interface BpelServerbc - BindingContext implementationBindingContextpublic DebuggerContext getDebugger(javax.xml.namespace.QName pid) throws BpelEngineException
getDebugger in interface BpelServerpid - 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 BpelServerpublic void cleanupProcess(ProcessConf pconf) throws BpelEngineException
cleanupProcess in interface BpelServerBpelEngineExceptionpublic void setMigrationTransactionTimeout(int migrationTransactionTimeout)