Documente Academic
Documente Profesional
Documente Cultură
Delivery Layer
Message Flow – post()
Uses Delivery Persistence Manager to persist messages to DLV_MESSAGE table with state=0. Documents exceeding threshold persisted in XML_DOCUMENT.
DLV_MESSAGE States: 0=Received, 1=Callback Resolved, 2=Performed/Handled
Invokes Dispather addMessage()for batch messages otherwise invokeMessage() for post()
Dispatcher Layer
Queues and Thread Pools
Queue Thread Pool BPEL Configuration Setting Notes
Invoke Invoker thread pool dsp_invoke_threads
Callback Engine thread pool dsp_engine_threads Callbacks, resolve subscriptions, deploy/undeploy
System System thread pool dsp_system_threads Deprecated
Message Flow
Component Method Step Database Table Affected
Dispatcher InvokeMessage() New Invoker thread InvokeMessageHandler picks
scheduleLocal() message for post(), same client thread executes
using Invoke instance message for a sync request()
InvokeMessageHandler createInstance() Gets Cube process, finds and activates root scope DLV_MESSAGE.state=2
openRootScope()
InvokeMessageHandler manageScope() Digs into scope and opens Work Items
InvokeMessageHandler handlePerform() Creates the WorkManagerPerformer (WMP)
handleWorkItem() WMP.activate() Activates first work item (or multiple for Flow)
handleWorkItem() WMP.perform() Gets first work item and executes the activity CUBE_INSTANCE entry created
CUBE_SCOPE entry created:root scope
handleWorkItem() WMP.finalize() Opens token for next activity and resets activity i.e. CUBE_INSTANCE.state=closed.complete
no stack depth increase
BPEL Process
XML Specification of a business process with three key components: Scopes, Activities, Transitions
Compiled down to Java into a Cube Runtime Map – this is a configuration map that specifies activities and relationships – not executable
BPEL process is manifested by .bpel, .wsdl and .xsd files – the WSDL specifies PartnerLink Role for use in asynchronous interactions
Page 2
Execution
WorkItem is a runtime instance of a Node.
Scope is a runtime instance of a Block.
WorkPerformer performs the execution logic of a Node.
WorkManager manages the lifecycle of a Node.
CubeInstance is the instantiation of a Process – it contains the scope activation tree and each scope contains the state of the variables.
Methods
Node: canActivate(), activate(), finalize()
Block: until(), handleException(), canActivate(), activate()
WorkItem: expire(), extend(), suspend(), resume()
oracle.com/SOA blogs.oracle.com/SOA @OracleSOA OracleSOA Oracle SOA© 2013 Oracle Corporation. All rights reserved.