By Vijay Shanmugam on Aug 02, 2010
Oracle Workflow has two major execution engines.
- Workflow Engine
- Workflow Business Event System
Here is a simple comparison of what they process and their associated background components.
|Workflow Engine||Workflow Business Event System|
|Executes workflow processes created using Windows based Workflow Builder client||Executes subscriptions to business events registered using Event Manager in Workflow Administrator Web Applications Responsibility|
|Entry point foreground APIs are WF_ENGINE.CreateProcess and WF_ENGINE.StartProcess||Entry point foreground API is WF_EVENT.Raise|
|Execution deferred to background by enqueuing message to AQ WF_DEFERRED_QUEUE_M||Execution deferred to background by enqueuing message to AQ WF_DEFERRED|
|Entry point background API is WF_ENGINE.Background||Entry point background API is WF_EVENT.Listen|
|AQ Payload is SYSTEM.WF_PAYLOAD_T||AQ Payload is WF_EVENT_T|
|Background processing is done by Concurrent Program - FNDWFBG (Workflow Background Engine)||Background processing is done by GSC Component - Workflow Deferred Agent Listener|
|Background Engine is submitted as recurring concurrent request from SRS form or Workflow Manager in OAM||Agent Listener is a service component managed through Workflow Manager in OAM|
This blog post is as a result of confusion about what AQ and corresponding background process comes into picture when troubleshooting a given problem. For example,
- When troubleshooting issues with Business Event System, users verify that the Workflow Background Engine is running.
- When troubleshooting deferred workflow processes, users verify that the Workflow Deferred Agent Listener is running.
It is important to understand the two processing engines in Oracle Workflow, the supporting background components and how these two engines integrate with each other.