Page Edited :
ODExSITE :
ODE Execution Events
ODE Execution Events has been edited by Alex Boisvert (Mar 19, 2007). Content:ODE generates events to let you track what is exactly happening in the engine and produces detailed information about process executions. These events are persisted in ODE's database and can be queried using the Management API. The default behavior for the engine is to always generate all events for every executed action. However from a performance standpoint it's a good idea to deactivate some of the events you're not interested in (or even all of them). Inserting all these events generates a non-negligeable overhead. Event typesThe following table details each event possibly generated by ODE:
The second column specifies wether an event is associated with the process itself or with one of its scopes. The event type is used for filtering events. Filtering eventsFiltering at the process levelUsing PXE's deployment descriptor, it's possible to tweak events generation to filtrate which ones get created. First, events can be filtered at the process level using one of the following stanza: <dd:process-events generate="all"/> <!-- Default configuration --> <dd:process-events generate="none"/> <dd:process-events> <dd:enable-event>dataHandling</dd:enable-event> <dd:enable-event>activityLifecycle</dd:enable-event> </dd:process-events> The first form just duplicates the default behaviour, when nothing is specified in the deployment descriptor, all events are generated. The third form lets you define which type of event is generated, possible types are: instanceLifecycle, activityLifecycle, dataHandling, scopeHandling, correlation. Filtering at the scope levelIt's also possible to define filtering for each scope of your process. This overrides the settings defined on the process. In order to define event filtering on a scope, the scope activity MUST have a name in your process definition. Scopes are referenced by name in the deployment descriptor: <dd:deployment-descriptor xmlns:dd="http://pxe.fivesight.com/schemas/2006/02/14/bpeldd"> ... <dd:process-events generate="none"> <dd:scope-events name="aScope"> <dd:enable-event>dataHandling</bpel:enable-event> <dd:enable-event>scopeHandling</bpel:enable-event> </dd:scope-events> <dd:scope-events name="anotherScope"> <dd:enable-event>activityLifecycle</bpel:enable-event> </dd:scope-events> </bpel:process-events> ... </dd:deployment-descriptor> Note that it's useless to enable an event associated with the process itself when filtering events on scopes. The filter defined on a scope is automatically inherited by its inner scopes. So if no filter is defined on a scope, it will use the settings of its closest parent scope having event filters (up to the process). Note that what gets inherited is the full list of selected events, not each event definition individually. Event listenersOde lets you register your own event listeners to analyze all produced events and do whatever you want to do with them. To create a listener you just need to implement the org.apache.ode.bpel.iapi.BpelEventListener Then add your implementation in the server's classpath and add a property in ode-axis2.properties giving your fully qualified implementation class name. Something like: ode-axis2.event.listeners=com.compamy.product.MyOdeEventListener Start your server and you're done! |
Unsubscribe or edit your notifications preferences