Developing user-defined extensions

This section contains details on how to implement a user-defined node or parser to enhance the functionality of WebSphere Business Integration Message Broker.

You can write user-defined nodes in C or Java. You can write user-defined parsers only in C. The files you create and then distribute are:

On Windows systems, a dynamic link library (DLL), named with a file type of '.lil'.

On UNIX systems, a shared object, again with a file type of '.lil'.

On z/OS, a shared object, with a file type of '.lil'.

For Java nodes, a Java Archive file (JAR), with a file type of '.jar'.

A C user-defined extension implements a node or parser factory that can support multiple nodes or parser types. Java users do not need to write a node factory.

The system loads the user-defined extension when the broker initializes. This invokes the registration functions in the user-defined extension so that the broker understands what nodes or parsers the user-defined extension supports.

Interfacing a C user-defined node to Java and wrappering it in JNI is not supported. This is because the broker internally initializes a JVM, which is not available through the user-defined extension interface. The JVM initializes with various parameters that are specific to the broker's requirements. Because there is only one JVM in a process, whoever initializes it first specifies these parameters. If a user-defined node uses Java, and the broker is initialized first, these parameters might not be suitable for the user-defined node. On the other hand, if the user-defined node creates the JVM before the broker starts, the broker might not function correctly.

Avoid the use of operating system specific functions, so that user-defined extensions can work on a variety of platforms with re-compilation only, without any change to the source code.

The following table shows which topics you need to read based on what type of user-defined extension you want to create:

To use one of the Java sample nodes:
  1. Implementing the provided samples
  2. Compiling a Java user-defined node
  3. Installing a user-defined extension on a broker domain
  4. Creating the user interface representation of a user-defined node in the workbench
  5. Testing a user-defined node
To use one of the C sample nodes:
  1. Implementing the provided samples
  2. Compiling a C user-defined extension
  3. Installing a user-defined extension on a broker domain
  4. Creating the user interface representation of a user-defined node in the workbench
  5. Testing a user-defined node
To use the sample parser:
  1. Implementing the provided samples
  2. Compiling a C user-defined extension
  3. Installing a user-defined extension on a broker domain
To create your own Java node using the workbench:
  1. Creating an input node in Java or Creating a message processing or output node in Java
  2. Using event logging from a user-defined extension
  3. Compiling a Java user-defined node
  4. Testing a user-defined node
  5. Distributing a user-defined node
To create your own C node:
  1. Creating an input node in C or Creating a message processing node in C
  2. Using event logging from a user-defined extension
  3. Compiling a C user-defined extension
  4. Installing a user-defined extension on a broker domain
  5. Creating the user interface representation of a user-defined node in the workbench
  6. Testing a user-defined node
  7. Distributing a user-defined node
To create your own parser:
  1. Creating a parser in C
  2. Using event logging from a user-defined extension
  3. Compiling a C user-defined extension
  4. Installing a user-defined extension on a broker domain
Related concepts
User-defined extensions
Related reference
User-defined extensions