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: