Developing user-defined nodes

You can develop a user-defined node to extend the function of IBM® Integration Bus.

Before you begin

About this task

Consider the following restrictions and factors when developing user-defined nodes:
  • Interfacing a C user-defined node to Java™ and providing a JNI wrapper is not supported. This restriction exists because the integration node internally initializes a JVM, which is unavailable through the user-defined extension interface. The JVM initializes with various parameters that are specific to the requirements of the integration node. Because only one JVM exists in a process, whoever initializes it first specifies these parameters. If a user-defined node uses Java, and the integration node is initialized first, these parameters might not be suitable for the user-defined node. If the user-defined node creates the JVM before the integration node starts, the integration node might not function correctly.
  • User-defined input nodes can support only XML, BLOB, and the WebSphere® MQ parsers.
  • Avoid using functions that are specific to an operating system. If you code in this way, your user-defined extensions can work on various operating systems without requiring changes to the source code.
  • Always put a user-defined node into a non-default schema because a user-defined node in a broker schema is known to other message flows by its schema qualified name. For example, if a user-defined node is named ErrorHandler and it is in broker schema com.ibm.mb.toolkit, it is referenced as com.ibm.mb.toolkit.ErrorHandler. If a second provider also has an error handler named ErrorHandler and it is in broker schema com.xxx.product, it is referenced as com.xxx.product.ErrorHandler. A user-defined node in a default schema is addressed by its name only. Therefore, if two different providers develop two unrelated error handlers and both are named ErrorHandler and both are placed in a default schema, when both user-defined nodes are in the plug-in space for a third user, the reference to ErrorHandler is ambiguous.
  • If you want to use a subflow to create a user-defined node, read the limitations section in the following topic: Using a subflow as a user-defined node.
To implement a user-defined node, complete the following tasks in the specified order:

Procedure

  1. Designing a user-defined node
  2. Creating a user-defined node
  3. Packaging and distributing user-defined extensions
  4. Testing a user-defined node
  5. Packaging and distributing a user-defined node project