Ciclo de vida de nodos de proceso de mensajes definidos por el usuario en Java

En este tema se describen las diferentes fases del ciclo de vida de un nodo de proceso de mensajes definido por el usuario para el lenguaje de programación Java. La descripción cubre los objetos que se crean y destruyen, y los métodos y las clases a los que se llama en las siguientes fases:

La información de este tema se aplica a los nodos de salida y a los nodos de proceso de mensajes. Estos dos tipos de nodos se pueden considerar juntos porque aunque un nodo de proceso de mensajes se utiliza generalmente para procesar un mensaje y un nodo de salida se utiliza para proporcionar una salida, con formato de corriente de bits, desde un mensaje, puede utilizar cualquiera de estos dos tipos de nodos para realizar cualquiera de estas funciones.

Registro

La fase de registro se produce cuando un nodo de proceso de mensajes definido por el usuario escrito en Java se da a conocer al intermediario o se registra con el intermediario.

Cuando se inicia un intermediario, carga todas las LIL y clases Java relevantes. Para asegurarse de que un nodo de proceso de mensajes se ha registrado en el intermediario, debe proporcionar al intermediario una clase que implemente la interfaz MbNodeInterface y que esté contenida en la classpath del intermediario.

Creación de una instancia

Se crea una instancia del nodo de proceso de mensajes definido por el usuario en Java cuando un intermediario despliega un flujo de mensajes que contiene el nodo de proceso de mensajes definido por el usuario. Cuando se crea la instancia del nodo, se llama al constructor de la clase del nodo de proceso de mensajes.

Cuando se crea una instancia del nodo, se crea cualquier terminal que haya especificado. Un nodo de proceso de mensajes puede tener asociados cualquier número de terminales de entrada o salida. Debe incluir los métodos createInputTerminal y createOutputTerminal en el constructor del nodo para declarar estos terminales.

Los terminales de salida incluyen los terminales de salida, los de anomalía o de captación. Utilice la clase createOutputTerminal incluido en el constructor de la clase del nodo para crear tantos terminales de salida como requiera.

Como mínimo, sólo necesita crear estos terminales de salida utilizando la clase del constructor. No obstante, si tiene que inicializar los valores de los atributos como, por ejemplo, también debe incluir en este momento el código del nodo de entrada.

Si desea manejar las excepciones que se devuelven al nodo de proceso de mensajes, se le recomienda que lo haga creando un terminal de anomalías para el nodo de proceso de mensajes definido por el usuario, utilizando el método createOutputTerminal. Lo más razonable es utilizar el terminal de anomalías para este proceso porque es ahí donde se propagan los errores de WebSphere Message Broker.

Asegúrese de que las excepciones que capte el nodo de proceso de mensajes se manejen correctamente. Si no incluye un terminal de anomalías, el nodo de proceso de mensajes no intentará manejar la excepción. Si el flujo de mensajes no contiene ningún método de manejo de excepciones, las excepciones generadas se devuelven al nodo de entrada, donde se manejarán.

Si capta excepciones, asegúrese de que vuelve a emitir las excepciones que el nodo de proceso de mensajes no puede manejar. Esto hará que la excepción se devuelva al nodo de entrada para su manejo, por ejemplo, cuando quiere restituir una transacción.

Proceso

Durante la fase de proceso del ciclo de vida de un nodo de proceso de mensajes definido por el usuario, el nodo de proceso de mensajes toma la jerarquía lógica del mensaje y lo procesa de algún modo.

Destrucción

Un nodo de proceso de mensajes definido por el usuario se destruye cuando se suprime el nodo o cuando el intermediario concluye. No es necesario que incluya nada en el código que especifique que el nodo debe suprimirse físicamente, porque esto lo puede manejar el recolector de basura.

No obstante, si desea que se notifique que está a punto de suprimirse un nodo, puede utilizar el método onDelete. Es posible que desee hacerlo si desea suprimir recursos distintos a los que recogerá el recolector de basura. Por ejemplo, si tiene un socket abierto, no se cerrará correctamente cuando se suprima automáticamente el nodo. Puede incluir esta instrucción en el método onDelete para asegurarse de que el socket está correctamente cerrado.

Avisos | Marcas registradas | Descargas | Biblioteca | Soporte | Su opinión
Copyright IBM Corporation 1999, 2006 Última actualización: 22/08/2006
as24999_