Fan Out mediation primitive properties

You can specify values for mediation primitive properties either by using the property fields in the IBM® Integration Designer user interface or by using an XML format. The property field names displayed in IBM Integration Designer are generally different from the property names used when building a mediation flow using XML code. In the following information, icons are used to identify each property name used in IBM Integration Designer and the corresponding XML name. (Where applicable, XML names that are required, but not shown in IBM Integration Designer, are also described.)

Mode mode

Specify whether the Fan Out is in iterate or once mode. Whatever the mode, the body of the input message is propagated unchanged.
Required Yes
Valid values
Once 0
The input message is propagated only once, from the out terminal.
Iterate 1
The iterate mode requires you to specify the XPath location of a repeating element in the input message.
Note:
Default Once

Iterate Expression iterateExpression

When in iterate mode, the out terminal is fired once for each occurrence of the repeating element that you specify, using an XPath expression.

For example, if the body of the SMO contained the following repeating element /body/input/accounttype[], an input message might contain the following account types: /body/input/accounttype[0]=gold and /body/input/accounttype[1]=platinum. If you set the XPath to /body/input/accounttype[], the out terminal would be fired twice: once with the FanOutContext containing gold and once with the FanOutContext containing platinum. If the input message does not contain any occurrences in the repeating element, the noOccurrences terminal is fired.

Required No
Valid values XPath
Note:

Batch Count batchCount

This property applies only to Fan Out mediations that are part of an aggregation. The purpose of this property is to control the rate at which asynchronous responses (for any asynchronous Service Invoke requests made in the aggregation block) are collected and processed.
Note: The value of this property does not affect the number of times the Fan Out will fire.
Required Yes
Valid values Integer
Note:

An integer of 0 equates to: Check for asynchronous responses after all messages have been fired. Therefore, the Fan Out mediation primitive fires all aggregation iterations before checking for any asynchronous service responses.

An integer of greater than 0 equates to: Check for asynchronous responses after {n} messages have been fired, where you can specify the value of {n}. This allows you to specify how many messages should be fired before asynchronous responses are handled. For example, a count of 1 would fire a single aggregation iteration and all resulting service responses would be received and processed before starting the next aggregation iteration (this is the default). The service responses would all be received before starting the next iteration. A count of 2 means there would be a maximum of two firings of the Fan Out output terminal before all service responses were collected. If the number of output terminal firings was not an exact multiple of 2 then any service responses resulting from the final firing would still be collected and processed as normal.

Default 1

Considerations

The Fan Out mediation primitive has a single promoted property, Batch Count, whose value you can change from the runtime administrative console.

Note: When setting this property in the runtime console, the special value 0 signifies that asynchronous responses are to be handled after the Fan Out mediation has completed all of its terminal firing.

Sample XML code

<node name="startAggregation" type="FanOut">
  <property name="mode" value="1"/>
  <property name="iterateExpression" value="/attachments"/>
  <inputTerminal/>
  <outputTerminal>
    <wire targetNode="UDDIEndpointLookup"/>
  </outputTerminal>
  <outputTerminal name="noOccurrences"/>
  <failTerminal/>
</node>