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.