Multiple MQInput nodes
If a message flow contains N MQInput nodes (representing, for example, different input routes), the broker creates N threads of the message flow in the DataFlowEngine (DFE), one thread for each MQInput node. For this reason, the memory usage in a DFE for a flow with multiple MQInput nodes might be larger than originally thought. Messages running through those separate N threads cause the DFE to use more memory from the process heap than would be used for a single thread that processes the same messages serially. The additional instances parameter (if it is set on the BAR file configurable properties) applies equally to each of those initial N instances.
This decision is a logical design decision that has runtime implications that customers need to be aware of.
- One approach is to create a distinct lightweight adapter flow with multiple MQInput nodes that pass messages to a single queue used in the physical transmission flow. Channel information, if needed, can be passed separately with the message either in the MQHRF2 or by some other means.
- Another possibility is to separate the physical transmission flows so that each flow has fewer MQInput nodes. Criteria for the separation of the physical transmission flows might be whether the flows process high volumes and therefore need more instances. Or, whether the flows process large batches and therefore need to run on their own due to memory usage of the large batch files.