The following
debug messages are available to help you to understand the execution of your
user-defined nodes and parsers:
- BIP2233 and BIP2234: a pair of messages
that are traced before and after a user-defined extension implementation function
is invoked. These messages report the input parameters and returned value.
For example:
BIP2233 Invoking user-defined extension
function [function name] ([function call parameters])
BIP2234 Returned
from user-defined extension function [function name] with result: [result
of call]Note: In these messages, an implementation function can
be interpreted as either a C implementation function or a Java implementation
method.
- BIP2308: a message that is logged when the broker
fails to load a LIL file.
BIP2308 File [name of
LIL file] could not be loaded; operating system return code [error code return
from operating system]
- BIP3904: a message that is traced before invoking the
Java evaluate() method of a user-defined node. For example:
BIP3904 (for
Java): Invoking the evaluate() method of node (class=[node class name], name=[label
of node in flow]) where node class name is the
name of the Java user-defined extension class.
- BIP3905: a message that is traced before invoking the
C cniEvaluate implementation function (iFpEvaluate member
of CNI_VFT) of a user-defined node. For example:
BIP3905 (for
C): Invoking the cniEvaluate() implementation function of node (class=[node
class name], name=[label of node in flow]) where node class
name is the name of the user-defined extension class that is provided
by the user-defined extension while calling C cniDefineNodeClass.
- BIP4142: a debug message that is traced when invoking
a user-defined node utility function, where the utility function alters the
state of a syntax element. This includes all utility functions that start
with cniSetElement*, where * represents all nodes with that
stem. For example:
BIP4142 Evaluating cniSetElement
[element identifier type]. Changing value from [value before user's change]
to [value after user's change]"
- BIP4144 and BIP4145: a pair of messages
that are traced by certain implementation functions that, when invoked by
a user-defined extension, can modify the internal state of a message broker's
object. Possible message broker objects include syntax element, node, and
parser. These messages report the input parameter provided to the invoked
method and the returned value. For example:
BIP4144 Entered
function [function name] ([function call parameters])
BIP4145 Exiting
function [function name] with result: [result to be returned]
In
these messages, an implementation function can be interpreted
as either a C implementation function or a Java implementation method.
The
C implementation functions that invoke messages BIP4144 and BIP4145 include:
For user-defined parsers |
For user-defined nodes |
cpiCreateParserFactory |
cniCreateElement* |
cpiDefineParserClass |
cniDeleteMessage |
cpiAppendToBuffer |
cniAdd* |
cpiCreateElement |
cniDetach |
cpiCreateAndInitializeElement |
cniCopyElementTree |
cpiAddBefore |
cniFinalize |
cpiAddAfter |
cniWriteBuffer |
cpiAddAsFirstChild |
cniSql* |
cpiAddAsLastChild |
cniSetInputBuffer |
cpiSetNameFromBuffer |
cniDispatchThread |
(* represents all nodes with that stem; for example, cniAdd* includes
cniAddAfter, cniAddasFirstChild, cniAddasLastChild, and cniAddBefore.)
The
Java methods that invoke messages BIP4144 and BIP4145 are:
For user-defined nodes |
com.ibm.broker.plugin.MbElement.CreateElement* |
com.ibm.broker.plugin.MbElement.add* |
com.ibm.broker.plugin.MbElement.detach |
com.ibm.broker.plugin.MbElement.copyElementTree |
- BIP4146: a debug message that is traced when invoking
a user-defined parser utility function, where the utility function alters
the state of a syntax element. This includes all utility functions that start
with cpiSetElement*, where * represents all nodes with that
stem. For example:
BIP4146 Evaluating cpiSetElement
[element identifier type]. Changing value from [value before user's change]
to [value after user's change]
For information on the C user-defined
API, see the C language user-defined parser API and the C language user-defined node API.
- BIP4147: an error message that is traced when a user-defined
extension passes an invalid input object to a user-defined extension utility
API function. For Example:
BIP4147 User-defined
extension input parameter failed debug validation check. Input parameter [parameter
name] passed into function [function name] is not a valid object.
- BIP4148: an error message that is traced when a user-defined
extension damages a broker's object. For Example:
BIP4148 User-defined
extension damaged broker’s object. Function [function name] has damaged broker’s
object passed as parameter [parameter name].
- BIP4149: an error message that is traced when a user-defined
extension passes an invalid input data pointer to a user-defined extension
utility API function. For Example:
BIP4149 User-defined
extension input parameter failed debug validation check. Input parameter [parameter
name] passed into function [function name] is a NULL pointer.
- BIP4150: an error message that is traced when a user-defined
extension passes invalid input data to a user-defined extension utility API
function. For example:
BIP4150 User-defined extension
input parameter failed debug validation check. Input parameter [parameter
name] passed into function [function name] does not have a valid value.
- BIP4151: a debug message that is traced when cniGetAttribute2 or cniGetAttributeName2 sets
the return code to an unexpected value. Expected values are CCI_SUCCESS, CCI_ATTRIBUTE_UNKNOWN,
and CCI_BUFFER_TOO_SMALL. Any other value is an unexpected value. For example:
BIP4151 An
unexpected value was returned from User-defined extension implementation function
[function name].
- BIP4152: a debug message that is traced when cniGetAttribute2 or cniGetAttributeName2 sets
the return code to CCI_BUFFER_TOO_SMALL, and then cniGetAttribute2 or cniGetAttributeName2 is
called again, this time with the correct size buffer, however the return code
is still set to CCI_BUFFER_TOO_SMALL. For example:
BIP4152 User-defined
extension Implementation function [function name] returned CCI_BUFFER_TOO_SMALL
on 2nd attempt.