Execution Control Service
The Execution Control service allows for the business process to dynamically change various execution parameters, primarily for performance.
The following table provides an overview of the Execution Control service:
|Graphical Process Modeler (GPM) categories||All Services, Process Controls|
|Description||The Execution Control service allows for the business process to dynamically change various execution parameters, primarily for performance.|
|Business usage||Use this service to dynamically affect the execution
of a business process. A business process can be:
|Usage example||At run time, this service can dynamically move within a business process to a lower or higher queue than the one assigned at check in time. Moving to a lower queue can free up threads for the highest priority processes. Additionally, the Execution Control service allows configuring for fewer steps in the process to be completed before re-entering the queue for an available thread in the workflow engine. For example, you can give a business process with a service level agreement time window processing priority by configuring it to hold onto its thread for many steps. In addition, you can move it up in the priority queue at a certain step. Conversely, you can configure a lower priority process to do very few steps before returning to the workflow engine for an available queue, thereby freeing resources for higher priority processing.|
|Requires third party files?||No|
|Platform availability||All supported Sterling B2B Integrator platforms|
|Application requirements||The business process using this service should have appropriate queue priorities assigned.|
|Initiates business processes?||This service does not initiate business processes. It works within a business process to adjust the execution of the steps in its business process, and/or change its priority queue.|
|Invocation||Does not invoke a business process|
|Business process context considerations||This service works within the workflow context
to dynamically reassign:
|Returned status values|| Returned status values:
Implementing the Execution Control Service
- Create an Execution Control service configuration.
- Configure the Execution Control service.
- Use the Execution Control service in a business process.
Configuring the Execution Control Service
To configure the Execution Control service, you must specify settings for the following fields in the Graphical Process Modeler (GPM):
|deadline||Deadline time by which the business process should be executed, in milliseconds as provided by the Timestamp Utility service. Optional.|
|executionCycleSize||Number of steps AE will cycle. Required. Value values are 1 - 2147483647. Default is 10.|
|mandatoryNode||Cluster only. The specific node on which the business
process must run. Optional. Specify any valid node number. You will
receive an error if the specified node is not available.
Note: The Sterling B2B Integrator initializes a business process workflow on any available node before moving the business process to the node specified in mandatoryNode.
|preferredNode||Cluster only. The node on which you would like the business process to run. Optional. Specify any valid node number. If the specified node is not available, the service will use another available node.|
|priority||Priority suggestion within the queue to place a step within a business process. Required. Valid values are 1 - 9. Default is 4.|
|queueName||The queue to be placed into. Optional. Valid values are 1 - 9.|
|yield||Allow the business process to yield its thread
to a higher priority process. After the yield, it is placed back in
the queue. Required. Valid values:
Note: In order for changes to other settings, such as executionCycleSize, to take effect immediately, yield must be set to true.
The fields configured in the GPM are passed from the business process to the Execution Control service.
Business Process Example
The following sample BPML demonstrates the syntax and usage of the Execution Control Service:
<process name="TestECS"> <sequence name="simple"> <assign to="TestStartStatus">Success</assign> <operation name="ExecutionControlServiceExample"> <participant name="ExecutionControlService"/> <output message="Xout"> <assign to="yield">false</assign> <assign to="queueName">6</assign> <assign to="priority">1</assign> <assign to="executionCycleSize">1000</assign> </output> <input message="Xin"/> </operation> <assign to="TestEndStatus">Success</assign> </sequence> </process>