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:
To implement a user-defined node, complete the following
tasks in the specified order:- 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 schemacom.ibm.mb.toolkit
, it is referenced ascom.ibm.mb.toolkit.ErrorHandler
. If a second provider also has an error handler namedErrorHandler
and it is in broker schemacom.xxx.product
, it is referenced ascom.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 namedErrorHandler
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 toErrorHandler
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.