This section contains details on how to
implement a user-defined node or parser to enhance the functionality of WebSphere Message Broker.
You can write user-defined nodes
in C or Java. You can write user-defined
parsers only in C. For a general introduction
on user-defined extensions, read User-defined extensions overview. For information
about designing and creating user-defined nodes and user-defined parsers,
see the following topics:
When you have created a user-defined node, you can test it; this
task is described in Testing a user-defined node. If you want to test
or use user-defined nodes or parsers on multiple computers, follow the instructions
given in Packaging and distributing user-defined extensions.
Consider the following
restrictions and factors when developing user-defined extensions:
- Interfacing a C user-defined node
to Java and providing a JNI wrapper is not supported. This restriction
exists 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. If the user-defined
node creates the JVM before the broker starts, the broker might not function
correctly.
- User-defined nodes can be deployed in WebSphere Event Broker.
When creating user-defined nodes for WebSphere Event Broker users,
you must ensure that you do not expose users to the ability to evaluate ESQL
code. For example, nodes that expose the input to MbSQLStatement as
a node property would effectively be emulating a Compute node. Use of ESQL
in WebSphere Event Broker is not supported.
- User-defined input nodes can only support XML, BLOB, and the MQ parsers.
- Avoid using operating system specific functions. If you code in this way,
your user-defined extensions can work on a variety of platforms without requiring
changes to the source code.
The following table shows the topics that you must read based
on the type of user-defined extension that you want to create.