Los siguientes mensajes de depuración ayudan a
entender la ejecución de los nodos y analizadores definidos por el
usuario:
- BIP2233 y BIP2234: un par de
mensajes de rastreo, antes y después de que se invoque una función de
implementación de extensión definida por el usuario. Estos mensajes informan de los parámetros
de entrada y el valor devuelto. Por ejemplo:
BIP2233 Invocando función de extensión
definida por el usuario [nombre función] ([parámetros llamada función])
BIP2234
Devuelto de función de extensión
definida por el usuario [nombre función] con resultado: [resultado de llamada]Nota: En
estos mensajes, una "función de implementación" puede
interpretarse como una función de implementación en C o un método de
implementación Java.
- BIP3904: un mensaje
de rastreo antes de llamar al método
Java evaluate() de un nodo definido por el usuario. Por ejemplo:
BIP3904 (para Java): Invocar el método evaluate()
del nodo (class=[nombre clase nodo], name=[etiqueta de nodo en
flujo]) donde
"nombre clase nodo" es el nombre de la clase de extensión Java definida
por el usuario.
- BIP3905: un mensaje de rastreo antes de invocar la
función de implementación en C cniEvaluate() (miembro
iFpEvaluate de CNI_VFT) de un nodo definido por el usuario. Por ejemplo:
BIP3905 (para C): Invocar la función de
implementación cniEvaluate() del nodo (class=[nombre clase nodo],
name=[etiqueta de nodo en flujo]) donde "nombre clase nodo"
es el nombre de la clase de extensión definida por el usuario que
proporciona la extensión definida por el usuario al llamar a
cniDefineNodeClass de C.
- BIP4142: un mensaje de depuración que se utiliza en
el rastreo cuando se invoca una función de utilidad de nodo definido por
el usuario, donde la función de utilidad altera el estado de un elemento
de sintaxis. Esto incluye todas las funciones de utilidad que empiezan con
cniSetElement*, donde * representa todos los nodos con
esa raíz.
BIP4142 Evaluando cniSetElement [tipo
de identificador de elemento]. Cambiando el valor de [valor antes del
cambio del usuario] por [valor después del cambio del usuario]"
- BIP4144 y BIP4145: un par de
mensajes de rastreo de ciertas funciones de implementación que, cuando las
invoca una extensión definida por el usuario, pueden modificar el estado
interno de un objeto de intermediario de mensajes. Los objetos
posibles de intermediario de mensajes incluyen elementos de sintaxis,
nodos y analizadores. Estos mensajes informan del parámetro de entrada que
se proporciona al método invocado y el valor devuelto. Por ejemplo:
BIP4144 Función entrada
[nombre función] ([parámetros llamada función])
BIP4145
Función de salida [nombre función] con resultado: [resultado a
devolver]
En
estos mensajes, una "función de implementación" puede
interpretarse como una función de implementación en C o un método de
implementación Java.
Las funciones de implementación en C que
invocan a los mensajes BIP4144 y
BIP4145 incluyen:
Para analizadores definidos por el
usuario |
Para nodos definidos por el usuario |
cpiCreateParserFactory |
cniCreateElement* |
cpiDefineParserClass |
cniDeleteMessage |
cpiAppendToBuffer |
cniAdd* |
cpiCreateElement |
cniDetach |
cpiCreateAndInitializeElement |
cniCopyElementTree |
cpiAddBefore |
cniFinalize |
cpiAddAfter |
cniWriteBuffer |
cpiAddAsFirstChild |
cniSql* |
cpiAddAsLastChild |
cniSetInputBuffer |
cpiSetNameFromBuffer |
cniDispatchThread |
(* representa todos los nodos con esa raíz; por ejemplo,
cniAdd* incluye cniAddAfter, cniAddasFirstChild, cniAddasLastChild y
cniAddBefore.)
Los métodos Java que invocan los mensajes
BIP4144 y BIP4145 son:
Para nodos definidos por el usuario |
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: un mensaje de depuración que se utiliza en
el rastreo cuando se invoca una función de utilidad de analizador definido
por el usuario, donde la función de utilidad altera el estado de un
elemento de sintaxis. Esto incluye todas las funciones de utilidad que
empiezan con cpiSetElement*, donde * representa todos los
nodos con esa raíz. Por ejemplo:
BIP4146 Evaluando cpiSetElement
[tipo de identificador de elemento]. Cambiando el valor de
[valor antes del cambio del usuario] por [valor después del cambio del
usuario]
Para obtener más información sobre la API en C
definida por el usuario, consulte
API C de analizador definido por el usuario y
API C de nodo definido por el usuario.
- BIP4147: un mensaje de
error de rastreo que aparece cuando una extensión definida por el usuario
pasa un objeto de entrada no válido a una función de API de utilidad de
extensión definida por el usuario. Por ejemplo:
BIP4147
El parámetro de entrada de extensión definida por el
usuario no ha superado la comprobación de validación de depuración. El parámetro de entrada [nombre parámetro] pasado a la función [nombre
función] no es un objeto válido.
- BIP4148: un mensaje de error
de rastreo que aparece cuando una extensión definida por el usuario
provoca daños en un objeto de intermediario. Por ejemplo:
BIP4148 La extensión
definida por el usuario ha dañado un objeto de intermediario. La función [nombre de función] ha dañado el objeto de intermediario
pasado como parámetro [nombre parámetro].
- BIP4149: un mensaje de error
de rastreo que aparece cuando una extensión definida por el usuario pasa
un puntero de datos de entrada no válido a una función de API de utilidad de
extensión definida por el usuario. Por ejemplo:
BIP4149
El parámetro de entrada de extensión definida por el usuario no ha superado la comprobación de validación de depuración. El parámetro de entrada [nombre parámetro] pasado a la función [nombre
función] es un puntero NULL.
- BIP4150: un mensaje de error
de rastreo que aparece cuando una extensión definida por el usuario pasa
datos de entrada no válidos a una función de API de utilidad
de extensión definida por el usuario. Por ejemplo:
BIP4150 El parámetro de entrada de extensión
definida por el usuario no ha superado la comprobación de validación de
depuración. El parámetro de entrada [nombre parámetro] pasado a la función [nombre
función] no tiene un valor válido.