TimeoutNotification node

This topic contains the following sections:

Purpose

The TimeoutNotification node is an input node that can be used in one of two ways:

  • Paired with one or more TimeoutControl nodes.

    The TimeoutNotification node processes timeout request messages that are set by the TimeoutControl nodes with which it is paired, and propagates copies of the messages (or selected fragments of the messages) to the next node in the message flow.

  • Standalone.

    Generated messages are propagated to the next node in the message flow at time intervals that are specified in the configuration of this node.

The TimeoutNotification node is represented in the workbench by the following icon:

Timeout Notification node icon

Using this node in a message flow

Use a TimeoutControl node and a TimeoutNotification node together in a message flow for an application that requires events to occur at a particular time, or at regular intervals.

For example, you might want a batch job to run every day at midnight, or you might want information about currency exchange rates to be sent to banks at hourly intervals.

More than one TimeoutControl node can be paired with a TimeoutNotification node. Timeout requests that are processed by those TimeoutControl nodes are all processed by the same TimeoutNotification node. This happens if the same Unique Identifier is used for the TimeoutNotification node and each of the TimeoutControl nodes.

Note that when a TimeoutNotification node is started as a result of the broker, or the message flow that contains the node, starting, it scans Its internal timeout store and purges any non-persistent timeout requests. Notifications are issued for any persistent timeout requests that are now past and that have the IgnoreMissed property set to False.

If you use a TimeoutNotification node to generate a WebSphere MQ message, to an output node such as MQOutput, you must provide a valid MQMD. If the TimeoutNotification node is running in Automatic mode (standalone), this is required. If the TimeoutNotification node is running in Controlled mode (that is, it is paired with one or more TimeoutControl nodes), this is required only if the stored messages do not already have an MQMD.

The following ESQL shows how you might do this.
CREATE NEXTSIBLING OF OutputRoot.Properties DOMAIN 'MQMD';
SET OutputRoot.MQMD.StrucId = MQMD_STRUC_ID;
SET OutputRoot.MQMD.Version = MQMD_CURRENT_VERSION;
SET OutputRoot.MQMD.Format = 'XML';
Because there is no WebSphere MQ context in the local environment, the MQOutput node property Message Context should have the default value.

Look at Timeout Processing sample for more details about how to use the timeout processing nodes.

Configuring the TimeoutNotification node

You can configure each instance of the TimeoutNotification node in your message flow.

To configure the node, right-click the node in the editor view and click Properties. The node's Basic properties are displayed.

Unique Identifier is the only mandatory property. It does not have a default value.

Configure the TimeoutNotification node by doing the following:

  • Specify in Unique Identifier a value that is unique within the broker and is the same as the identifier that is specified for the TimeoutControl nodes with which this node is paired (if there are any). The maximum length of this identifier is 12 characters.
  • Specify a value for Transaction Mode. This property affects the transactional control of the propagated timeout messages and can be set to one of the following values:
    Yes
    A transaction is always started.
    No
    A transaction is never started.
    Automatic
    This value is only meaningful if Operation Mode has the value Controlled. Whether a transaction is started depends on the persistence of the stored timeout requests which is controlled by the value of Request Persistence in the TimeoutControl node with which it is paired.
  • Specify a value for Operation Mode. This property indicates whether this node has any paired TimeoutControl nodes. Set it to one of the following values:
    Automatic
    The node is not paired with any TimeoutControl nodes. It generates timeout requests with an interval that is controlled by the setting of the Timeout Value property.
    Controlled
    The node processes all timeout requests that have been stored by the TimeoutControl nodes with which it is paired.
  • If Operation Mode is Automatic, specify a value for Timeout Interval. This value specifies the interval (in seconds) between message propagation.
  • Select Validation in the properties dialog navigator if you want the MRM parser to validate the body of messages against the dictionary generated from the message set. (If a message is propagated to the failure terminal of the node, it is not validated.)

    For more details refer to Validating messages and Validation properties for messages in the MRM domain.

  • Select General Message Options in the properties dialog navigator. Parse Timing is, by default, set to On Demand. This causes validation to be delayed until it is parsed by partial parsing. If you change this to Immediate, partial parsing is overridden and everything in the message is parsed and validated, except those complex types with a Composition of Choice or Message that cannot be resolved at the time. If you change this to Complete, partial parsing is overridden and everything in the message is parsed and validated; complex types with a Composition of Choice or Message that cannot be resolved at the time cause a validation failure.
  • Select Description in the properties dialog navigator to enter a short description, a long description, or both.

When you have completed your configuration, click Apply. This makes the changes to the TimeoutNotification node without closing the properties dialog. Click OK to apply the changes and close the properties dialog. Click Cancel to close the dialog and discard all the changes that you have made to the properties.

Terminals and properties

The terminals of the TimeoutNotification node are described in the following table.

Terminal Description
Failure The output terminal to which the message is propagated if a failure is detected during processing in this node. Nodes can be connected to this terminal to process these failures. If this terminal is not connected to another node, messages are not propagated and no logging or safe storage of data occurs.
Out The output terminal to which messages are propagated after timeouts expire.

If the TimeoutNotification node is running in Automatic mode (that is, there are no TimeoutControl nodes paired with this node), the propagated messages contain only a Properties folder and a LocalEnvironment that is populated with the timeout information.

If the TimeoutNotification node is running in Controlled mode (that is, TimeoutControl nodes that are paired with this node store timeout requests), the propagated messages contain what was stored by the TimeoutControl nodes; this might be entire request messages or fragments thereof.

Note that if the TimeoutNotification node is used as the input node to a message flow that generates a WebSphere MQ message (for example, by using an MQOutput node), the message flow must create the necessary MQ headers and data (for example, MQMD).

Catch The output terminal to which the message is propagated if an exception is thrown downstream. If this terminal is not connected to another node, the following events occur:
  1. The TimeoutNotification node writes the error to the local error log.
  2. The TimeoutNotification node repeatedly tries to process the request until the problem that caused the exception is resolved.

The following tables describe the node properties; the column headed M indicates whether the property is mandatory (marked with an asterisk on the properties dialog if you must enter a value when no default is defined), the column headed C indicates whether the property is configurable (you can change the value when you add the message flow to the bar file to deploy it).

The Basic properties of the TimeoutNotification node are described in the following table.

Property M C Default Description
Unique Identifier Yes Yes  None A value that is unique within the broker and that is the same as the identifier that is specified for the TimeoutControl nodes with which this node is paired (if there are any). The maximum length of this identifier is 12 characters.
Transaction Mode No No 'Yes' The transaction mode for the node. Its value can be Yes, No, or Automatic. If the transaction mode is Automatic, a transaction based on the persistence of the stored messages which is controlled by the Request Persistence property of the TimeoutControl node with which it is paired.
Operation Mode No No 'Automatic' This property indicates whether or not this node is paired with any paired TimeoutControl nodes. Its value can be Automatic or Controlled.
Timeout Interval No No 1 The interval (in seconds) between timeout requests. It is relevant only if Operation Mode is set to Automatic.

The Validation properties of the TimeoutNotification node are described in the following table.

Refer to Validation properties for messages in the MRM domain for a full description of these properties.
Property M C Default Description
Validate Yes Yes None Whether validation takes place. Valid values are None, Content, and Content And Value.
Failure Action Yes No Exception What happens if validation fails. You can set this property only if you set Validate to Content or Content and Value. Valid values are User Trace, Local Error Log, Exception, and Exception List.
Include All Value Constraints Yes No Selected This property cannot be edited. The default action, indicated by the check box being selected, is that basic value constraint checks are included in Content and Value validation.
Fix Yes No None This property cannot be edited.

The properties of the General Message Options for the TimeoutNotification node are described in the following table.

Property M C Default Description
Parse Timing Yes No On Demand This property controls when an input message is parsed. Valid values are On Demand, Immediate, and Complete.

Refer to Parsing on demand for a full description of this property.

Use MQRFH2C Compact Parser for MQRFH2 Domain No No False This property controls whether the MQRFH2C Compact Parser, instead of the MQRFH2 parser, is used for MQRFH2 headers.

The properties of the XMLNSC Parser Options for the TimeoutNotification node are described in the following table.

Property M C Default Description
Use XMLNSC Compact Parser for XMLNS Domain Yes Cleared No Start of changeThis property gives you control over whether the XMLNSC Compact Parser is used for messages in the XMLNS Domain. Note that if you set this property, the message data will appear under XMLNSC in nodes that are connected to the output terminal when the input RFH2 header or Default properties Domain is XMLNS.End of change
Mixed Content Retain Mode Yes No None This property controls whether the XMLNSC parser creates elements in the message tree when it encounters mixed text in an input message. Valid values are None and All. Selecting All means that elements are created for mixed text. Selecting None means that mixed text is ignored and no elements are created.
Comments Retain Mode Yes No None This property controls whether the XMLNSC parser creates elements in the message tree when it encounters comments in an input message. Valid values are None and All. Selecting All means that elements are created for comments. Selecting None means that comments are ignored and no elements are created.
Processing Instructions Retain Mode Yes No None This property controls whether the XMLNSC parser creates elements in the message tree when it encounters processing instructions in an input message. Valid values are None and All. Selecting All means that elements are created for processing instructions. Selecting None means that processing instructions are ignored and no elements are created.

The Description properties of the TimeoutNotification node are described in the following table.

Property M C Default Description
Short Description No No   A brief description of the node.
Long Description No No   Text that describes the purpose of the node in the message flow.