Este tema le ayudará a comprender las interacciones que tienen lugar entre los componentes de WebSphere Business Integration Message Broker al ejecutarse un analizador definido por el usuario. En él se define cada etapa desde el punto de vista de los sucesos que las originan, los sucesos que se producen mientras dura cada una de ellas o los que tienen lugar una vez finalizadas, y también se definen las API que se invocan. Una vez que comprenda los conceptos incluidos en este tema, podrá diseñar y desarrollar el analizador de forma más efectiva.
La primera fase del ciclo de vida del analizador definido por el usuario es el registro. El propósito de la fase de registro es registrar el analizador definido por el usuario con el intermediario. Esta fase se activa mediante la fase de inicialización del inicio del proceso de grupo de ejecución.
El analizador se crea durante la fase de creación de instancias del ciclo de vida del analizador. Al recibirse un mensaje de entrada, o crearse un mensaje de salida en un nodo de cálculo, se identifica el analizador relevante y los requisitos del analizador se toman de la cabecera de mensaje, como por ejemplo MQMD. El intermediario inicia, carga la biblioteca de implementación cargable (lil) y la fábrica del analizador. El proceso de grupo de ejecución crea una instancia del analizador, y el intermediario realiza una llamada a cpiCreateContext para permitir que el objeto de analizador adquiera la sección adecuada del mensaje.
Antes de invocar esta función, el intermediario habrá creado un elemento de nombre como elemento raíz efectivo para el analizador. No obstante, este elemento no recibirá ningún nombre. El analizador debe denominar este elemento en la función cpiSetElementName.
Seguidamente, el intermediario realiza una llamada a cpiParseBuffer. El propósito de cpiParseBuffer en esta etapa es realizar la inicialización que sea necesaria y devolver la longitud del contenido de mensaje del que va a apropiarse el analizador. El analizador valora la cantidad de datos de mensaje que debe analizar y reclama el número de bytes apropiado.
Siempre que se crea una instancia de un objeto de analizador definido por el usuario, el intermediario de mensajes invoca también la función de implementación de creación de contexto cpiCreateContext. Esto permite al analizador asignar datos de instancia asociados con el analizador. También es necesaria un función cpiDeleteContext para suprimir el contexto del objeto de analizador.
El propósito de la fase de proceso es manipular, alterar y crear referencias de los elementos de un objeto de mensaje que el analizador va a interpretar. La fase de proceso de flujo de mensajes empieza al producirse alguna actividad de proceso de mensajes, como la navegación, que requiere acceso a un elemento de un mensaje que no existe en la representación de modelo interno del intermediario del mensaje en cuestión.
Durante la fase de proceso de flujo de mensajes, se invoca el analizador en respuesta a los intentos de navegar por el árbol de mensajes. El analizador examina el almacenamiento intermedio asignado en el momento de invocarse a cpiParseBuffer y crea los elementos de mensaje necesarios.
Se invocan estas funciones al realizarse cualquier forma de navegación, como por ejemplo, una expresión de filtro que especifica un campo de mensaje, hasta la parte del árbol de elementos de sintaxis que representa lógicamente los datos para un formato de mensaje al que da soporte un analizador definido por el usuario. Esto ocurre cuando una operación que tiene lugar en el intermediario requiere crear o ampliar un árbol de elementos de sintaxis.
Cuando el analizador ha terminado de analizar las partes relevantes del árbol de elementos de sintaxis, invoca a cpiWriteBuffer. Esta función añade su parte correspondiente del árbol de elementos de sintaxis a la corriente de bits del almacenamiento intermedio de mensajes asociado con el objeto de analizador. Esto crea el mensaje de salida.
La fase de destrucción es la fase final del ciclo de vida del analizador definido por el usuario. Cuando el analizador ha escrito su parte correspondiente del árbol de elementos de sintaxis en la corriente de bits y ha creado el mensaje de salida, los recursos de sistema que el intermediario ha creado para que los utilice el analizador deben liberarse.
La fase de destrucción empieza cuando se utiliza el mandato mqsistop para detener el proceso de ejecución.
Conceptos relacionados
Analizadores
Analizadores definidos por el usuario
Extensiones definidas por el usuario
Tareas relacionadas
Creación de un analizador en C
Referencia relacionada
API de analizador C definida por el usuario
Avisos |
Marcas registradas |
Descargas |
Biblioteca |
Soporte |
Información de retorno (feedback)
![]() ![]() |
as01413_ |