Execution and threading models in a message flow

The execution model is the system used to start message flows which process messages through a series of nodes.

When an integration server is initialized, the appropriate loadable implementation library (LIL) files and Plug-in Archive (PAR) files are made available to the runtime environment. The integration server runtime process starts, and creates a dedicated configuration thread.

The message flow execution environment is conceptually like procedural programming. Nodes that you insert into a message flow are like subroutines that are called by using a function call interface. However, rather than a call-return interface, in which parameters are passed in the form of input message data, the execution model is referred to as a propagation-and-return model.

In the message flow execution environment, the message flow is thread-safe. You can run message flows concurrently on many operating system threads, without having to consider serialization issues.

Each input message that passes through a message flow for processing by a series of nodes executes on a single thread; it is processed only by the thread that received it. If you want to increase the throughput of a message flow, you can increase the number of threads that are assigned to that message flow. The memory requirements of an integration server are not unduly affected by running message flows on more operating system threads.

With a larger number of threads, the message flow can handle peak message loads. At other times, the additional threads are idle.

You can increase or decrease the number of threads servicing a flow by using the Additional instances property on the input node of the message flow.

Each instance of a message flow processing node is shared, and used by all the threads that service the message flow in which the node is defined.