Using the Scheduler Binding Component
Configuring Redelivery and Throttling for the Scheduler Binding Component
Redelivery and Throttling are Quality of Service (QoS) features that are configured from the Composite Application Service Assembly (CASA) Editor. To access the QoS Properties Editor for a Scheduler Binding Component endpoint, open your Composite Application in the CASA Editor, and click the QoS icon for the endpoint you want to configure. The QoS Properties Editor for that endpoint appears.
Redelivery is a QoS mechanism that handles message delivery when first-time delivery fails. Redelivery allows you to define the number of attempts that the system makes to deliver a message, the time between attempts, and the final result for an undeliverable message or nonresponsive endpoint.
Configuring Redelivery for an Endpoint
To configure Redelivery for a specific endpoint, open the QoS Properties Editor for that endpoint connection. From the Redelivery Extension section of the editor, configure the Redelivery properties.
The Redelivery configuration parameters are:
- Max Attempts: Specifies the number of times that the project attempts to redeliver a message. An error status is returned to the JBI component for each failed attempt.
- Wait Time: Specifies the time, in milliseconds, that the project waits between redelivery attempts.
- On Failure: Specifies the actions taken and the message destination when the specified redelivery attempts have been exhausted.
This parameter has four options:
- Delete: QoS utility deletes the message and returns a Done status to the JBI component, at which time the component proceeds to its next process. The delete option only supports In-Only message exchanges.
- Redirect: QoS utility redirects the message to a user-defined endpoint, such as a ?dead-message? folder. Upon successful delivery to the redirect endpoint, the QoS utility returns a Done status to the JBI component, at which time the component proceeds to its next process. The redirect option only supports In-Only message exchanges.
- Suspend: The JBI component suspends the process instance . This option is only supported if monitoring is enabled in the JBI Component, since the user must use the monitoring tool to resume a suspended instance. This option is supported for both In-Only and In-Out message exchanges. Note that the Suspend option is not supported for the Scheduler Binding Component.
- Error: The error option specifies that when the final attempt to redeliver the message is exhausted, the JBI component throws an exception. This option is only supported if monitoring is enabled in the JBI Component, since the user must use the monitoring tool to resume a suspended instance. This option is supported for both In-Only and In-Out message exchanges.
Note - The On Failure property options, delete and redirect, cannot be applied to In-Out message exchanges because the return value for these options does not suffice. A specific response is required from the process instance to proceed further. For more information, see Redelivery
Throttling is used to set the maximum number of concurrent messages that are processed by a particular endpoint. Increased message load and large message payloads can cause memory usage spikes that can decrease performance. Throttling limits resource consumption so that consistent performance is maintained. In most cases, the trigger message from the Scheduler Binding Component is small, and limiting resource consumption is not an issue.
Throttling can also be used to configure serialization, or the order in which messages are processed. When set to a value of 1, then only one trigger message can be processed at a time, guaranteeing that regardless of size, messages are processed in the order in which they fire.
Configuring Throttling for an Endpoint
To configure Throttling for a specific endpoint, do the following:
- Open the QoS Properties Editor for that endpoint.
- From the Throttling Extension section of the editor, configure the Maximum Concurrency Limit property. Specify the maximum number of concurrent messages to be processed for this connection, or enter a value of 1 to guarantee serial message processing.