Gestión de almacenamiento

En esta sección se describen temas relacionados con la gestión de almacenamiento que necesita tener en cruenta cuando desarrolle extensiones definidas por el usuario para WebSphere Message Broker en lenguaje de programación Java. Si está desarrollando extensiones definidas por el usuario utilizando el lenguaje de programación C, puede utilizar métodos de gestión de almacenamiento Java estándar.

Toda la memoria asignada por una extensión definida por el usuario la debe liberar la extensión definida por el usuario. La creación de un nodo en tiempo de ejecución hace que se invoque cniCreateNodeContext, lo que permite a la extensión definida por el usuario asignar áreas de datos específicas de la instancia del nodo para almacenar un contexto. La dirección del contexto se devuelve al intermediario de mensajes y se pasa otra vez al intermediario cuando un método interno hace que se invoque una función de extensión definida por el usuario, de este modo, se puede localizar la extensión definida por el usuario en lenguaje C y se puede utilizar el contexto correcto para el proceso de la función.

El intermediario de mensajes pasará las direcciones de objetos C++ a la extensión definida por el usuario. Estas están diseñadas simplemente para utilizarlas como un manejador que se vuelve a pasar en las llamadas posteriores a la función. No debe permitir que la extensión definida por el usuario en lenguaje C intente manipular o utilizar este puntero de ningún modo, por ejemplo, en un intento de liberar el almacenamiento mediante la función free. Dichas acciones crearán un comportamiento imprevisto en el intermediario de mensajes.

Se invoca la función de implementación cniCreateNodeContext siempre que se haya creado internamente el objeto del nodo subyacente. Esto se produce cuando se define un intermediario con un flujo de mensajes que utiliza un nodo definido por el usuario. Es importante tener en cuenta que esta no es necesariamente la misma actividad que crear (o volver a utilizar) una hebra para ejecutar una instancia de flujo de mensajes que contiene el nodo. De hecho, se llamará a la función cniCreateNodeContext solamente una vez, durante la configuración del flujo de mensajes, independientemente del número de hebras que estén ejecutando el flujo de mensajes.

Se aplican consideraciones similares a los analizadores definidos por el usuario y a la función de implementación cpiCreateContext correspondiente.

Conceptos relacionados
Extensiones definidas por el usuario
Analizadores definidos por el usuario
Referencia relacionada
cpiCreateContext
cniCreateNodeContext
Avisos | Marcas registradas | Descargas | Biblioteca | Soporte | Su opinión
Copyright IBM Corporation 1999, 2006 Última actualización: 22/08/2006
as01440_