User-defined extensions execution model

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

When an execution group is initialized, the appropriate loadable implementation library (LIL) files and Plug-in Archive (PAR) files are made available to the runtime environment. The execution group runtime process starts, and creates a dedicated configuration thread. You are responsible for ensuring that a user-defined node is thread-safe. If a node updates a variable across multiple threads then appropriate locking must be in place. Do not compromise this threading model in your implementation of user-defined nodes. Consider the following points:

As an example, consider a message flow in which you use both user-defined nodes and parsers. You use a user-defined node to process messages, and a user-defined parser to parse messages; both the node and parser contain implementation functions. The broker calls the implementation functions, or callback functions, when certain events occur:

The broker invokes the user-defined parser on one of its implementation functions, for example cpiParseFirstChild. This function instructs the parser to build the parse tree. The parser builds the tree by invoking utility functions that create elements in the parse tree, for example cpiCreateElement. The parser can be called many times by the broker.

Related concepts
Runtime environment
Brokers
Execution groups
Message flows overview
Threading considerations for user-defined extensions
Related tasks
Designing a message flow
Related reference
C language user-defined node API
C language user-defined parser API
Related information
Java user-defined extensions API
Notices | Trademarks | Downloads | Library | Support | Feedback

Copyright IBM Corporation 1999, 2009Copyright IBM Corporation 1999, 2009.
Last updated : 2009-01-07 15:23:05

as01540_