Utilice el nodo .NETCompute en los intermediarios de Windows para construir mensajes de salida e interactuar con aplicaciones Microsoft .NET Framework (.NET) o Component Object Model (COM).
Este tema contiene los siguientes apartados:
Los mensajes de salida que cree en el nodo .NETCompute pueden crearse modificando la información que se suministra en el mensaje de entrada, o utilizando información que puede extraerse de otras fuentes, como aplicaciones .NET o COM. Los elementos del mensaje de entrada (por ejemplo, cabeceras, campos de cabecera y datos del texto) y las variables de entorno asociadas, LocalEnvironment y ExceptionList se pueden utilizar para crear el mensaje de salida.
El nodo .NETCompute utiliza cualquier lenguaje compatible con Common Language Runtime (CLR) para crear o modificar el mensaje, como C#, Visual Basic (VB), F# y C++/CLI (Common Language Infrastructure).
Utilice el nodo .NETCompute para completar las siguientes tareas:
El nodo .NETCompute está incluido en la bandeja .NET de la paleta, y está representado por WebSphere Message Broker Toolkit con el siguiente icono:
El nodo .NETCompute sólo se ejecuta en intermediarios de Windows. Se produce un error si intenta desplegar un flujo de mensajes que contenga un nodo .NETCompute en un intermediario que se ejecuta en un sistema que no es Windows. Asegúrese de que el intermediario esté ejecutándose en Windows antes de desplegar el flujo de mensajes.
Los archivos de configuración de .NET, que se pueden utilizar en el nodo .NETCompute, están soportados en WebSphere Message Broker Toolkit.
El nodo .NETCompute puede utilizarse en cualquier flujo de mensajes que se despliega en un intermediario que se ejecuta en Windows. El nodo .NETCompute se suele utilizar en un escenario en el que el mensaje que se crea es necesario para interactuar con otras aplicaciones .NET para almacenar datos del mensaje o recuperar datos para aumentarlo.
Sólo se crea una instancia de un determinado nodo .NETCompute, independientemente del número de hebras que se ejecutan para el flujo de mensajes. Ya sea como resultado de instancias adicionales o de varios nodos de entrada. Por lo tanto, todo el código .NET de usuario debe ser de enhebramiento seguro y reentrada. Para obtener más información sobre cómo hacer que un nodo sea de enhebramiento seguro y asegurarse de que las funciones implementadas e iniciadas por extensiones definidas por el usuario sean reentrantes, consulte Modelo de ejecución de extensiones definidas por el usuario y Consideraciones acerca de las hebras para extensiones definidas por el usuario.
Las actualizaciones creadas con los lenguajes .NET no participan en transacciones de WebSphere Message Broker.
El nodo .NETCompute debe configurarse con un conjunto .NET que contenga el código del nodo. El código consta de una clase que se deriva de la claseNBComputeNode abstracta que se proporciona en el conjunto IBM.Broker.Plugin.dll.
Utilización de un conjunto .NET existente
Si el ensamblado se proporciona como un archivo compilado .dll de un proveedor o de un tercero, debe elegir el ensamblado utilizando la propiedad opción Examinar que se proporciona para la propiedad de nodo .NETCompute de Nombre de ensamblado. Como alternativa, puede arrastrar el conjunto directamente en el nodo. Si no se le suministra un conjunto, debe crear un conjunto de nodos.
Creación de un conjunto .NET
El intermediario se puede integrar con Microsoft Visual Studio 2010 o 2012 para crear un conjunto .NET que represente el nodo. Para iniciar Microsoft Visual Studio directamente desde el nodo, asegúrese de que Microsoft Visual Studio 2010 o 2012 está instalado y efectúe una doble pulsación sobre el nodo .NETCompute. Como alternativa, pulse con el botón derecho del ratón en el nodo y seleccione Abrir Microsoft Visual Studio. Si se proporciona un proyecto o un nombre de solución Microsoft Visual Studio en el panel Visual Studio, el proyecto o la solución se carga automáticamente cuando se abre Microsoft Visual Studio.
Desde Microsoft Visual Studio, seleccione Nuevo proyecto. Después, puede seleccionar un proyecto de Message Broker, que se encuentra debajo del lenguaje que ha elegido, por ejemplo, Visual Basic.
El proyecto genera el código de esqueleto que coincide con el tipo seleccionado. A continuación, este código de esqueleto se visualiza en el editor de lenguaje .NET correspondiente; por ejemplo, Visual Basic.
La clase NBComputeNode contiene un método que debe sobrescribirse temporalmente y dos métodos opcionales adicionales que puede decidir alterar temporalmente si es necesario. El método Evaluate() siempre debe alterarse temporalmente y se implementa automáticamente mediante la plantilla Proyecto de Message Broker, si la plantilla se utiliza para generar el código de esqueleto. Los métodos opcionales son OnInitialize() y OnDelete(). Si desea que el nodo lleve a cabo operaciones de inicialización o borrado, proporcione una implementación de uno o ambos de estos métodos.
El intermediario llama inmediatamente al método OnDelete() antes de que el método suprima el nodo. El intermediario OnInitialize() llama al método cuando se crea el nodo, después de que se establezcan los atributos del nodo. El método OnInitialize() se invoca durante el despliegue, pero antes de que se confirme el despliegue. Los nodos en sentido descendente todavía podrían generar excepciones durante la inicialización, haciendo que el despliegue no se realice satisfactoriamente. Por esta razón, cualquier código de la aplicación de usuario que se base en el estado desplegado del flujo de mensajes debe colocarse dentro del método Evaluate().
Cuando coloca una instancia del nodo .NETCompute en un flujo de mensajes; debe configurarlo, consulte Configurar un nodo de flujo de mensajes. Para configurar el nodo, puede arrastrar un archivo de ensamblado de un explorador de archivos al nodo. Las propiedades del nodo se visualizan en la vista Propiedades.
Todas las propiedades obligatorias para las que debe especificar un valor (las que no tienen un valor predeterminado definido) están marcadas con un asterisco.
Puede codificar sentencias para personalizar el comportamiento del nodo .NETCompute utilizando como plantilla los esqueletos de código del proyecto Nodo Compute de Message Broker de Microsoft Visual Studio. Por ejemplo, puede personalizar el nodo para crear un mensaje de salida, o varios mensajes, utilizando un mensaje de entrada o datos de un origen externo. Es posible que haya un escenario concreto en el que desee modificar un valor del mensaje de entrada, lo cual es posible hacer, añadiendo uno o más valores que se obtienen de la interfaz .NET de una aplicación externa y almacenando el resultado en el mensaje de salida.
Para depurar un .NETCompute que se ejecuta dentro del grupo de ejecución, coloque el archivo .pdb para el conjunto que implementa el nodo en el mismo directorio que el conjunto del nodo, y adjunte Microsoft Visual Studio al proceso DataFlowEngine.exe. Entonces podrá poner puntos de interrupción en el código y examinar variables, por ejemplo cuando se alcance el punto de interrupción.
Para obtener más información sobre la creación de código .NET para un nodo .NETCompute, puede acceder a la documentación de la API .NET que se incluye con la instalación de WebSphere Message Broker desde la ubicación del menú Inicio en Windows.
Establezca las propiedades de validación para definir cómo debe validarse el mensaje producido por el nodo .NETCompute. Estas propiedades no hacen que se valide el mensaje de entrada. Se espera que, si se necesita dicha validación, el nodo de entrada o un nodo de validación anterior ya haya realizado la validación.
Para obtener más información, consulte Validar mensajes y Propiedades de validación.
Los terminales del nodo .NETCompute están descritos en la siguiente tabla.
Terminal | Tipo | Descripción |
---|---|---|
In (de entrada) | Datos de entrada | El terminal de entrada que acepta datos de un origen remoto. |
Out (de salida) | Datos de salida | El terminal de salida que envía datos a un nodo en sentido descendente. |
Failure (de anomalías) | Datos de salida | Terminal de salida al que se direcciona el mensaje de entrada si durante el cálculo se produce una excepción no manejada. |
* (dinámico) | Datos de salida | Pueden crearse terminales de salida dinámicos (o no crearse ninguno), para dar soporte al direccionamiento de mensajes. |
Puede definir terminales de salida dinámicos en el nodo .NETCompute.
Las tablas siguientes describen las propiedades del nodo. La columna con la cabecera O indica si la propiedad es obligatoria (marcada con un asterisco si tiene que entrar un valor cuando no hay definido ningún valor predeterminado); la columna con la cabecera C indica si la propiedad es configurable (puede cambiar el valor cuando añade el flujo de mensajes al archivo BAR para desplegarlo).
Las propiedades de descripción del nodo .NETCompute están descritas en la siguiente tabla.
Propiedad | M | C | Valor predeterminado | Descripción |
---|---|---|---|---|
Nombre de nodo | No | No | El tipo de nodo | El nombre del nodo. |
Descripción corta | No | No | Breve descripción del nodo. | |
Descripción larga | No | No | Texto que describe la finalidad del nodo en el flujo de mensajes. |
Las propiedades básicas del nodo .NETCompute se describen en la siguiente tabla.
Propiedad | M | C | Valor predeterminado | Descripción | Propiedad de mandato mqsiapplybaroverride |
---|---|---|---|---|---|
Nombre de conjunto | Sí | Sí | El conjunto que implementa el nodo. Utilice la opción Examinar para seleccionar un conjunto; también se puede soltar un archivo .dll de conjunto en el nodo para completar automáticamente esta propiedad. | AssemblyName | |
Nombre de clase | No | Sí | Nombre de la clase que implementa el nodo. Es necesario un valor para esta propiedad sólo si dos o más nodos están a la vista en el mismo conjunto, o para nombrar de forma explícita una subclase como nodo de implementación. | AssemblyNodeClassName |
Las propiedades Microsoft Visual Studio del nodo .NETCompute se describen en la tabla siguiente.
Propiedad | M | C | Valor predeterminado | Descripción | Propiedad de mandato mqsiapplybaroverride |
---|---|---|---|---|---|
Nombre de proyecto de Visual Studio | No | No | El proyecto o la solución de Microsoft Visual Studio que contiene el código del nodo. |
Las propiedades Avanzadas del nodo .NETCompute están descritas en la siguiente tabla.
Propiedad | M | C | Valor predeterminado | Descripción | Propiedad de mandato mqsiapplybaroverride |
---|---|---|---|---|---|
Nombre de dominio de aplicación | No | Sí | El .NET AppDomain que aloja el nodo. | AppDomain | |
Versión | No | Sí | La versión del conjunto. | AssemblyVersion | |
Cultura | No | Sí | La cultura del conjunto. | AssemblyCulture | |
Señal de clave pública | No | Sí | La señal de clave pública del conjunto. | AssemblyPublicKeyToken |
Las propiedades de validación del nodo .NETCompute se describen en la tabla siguiente.
Para ver la descripción completa de estas propiedades, consulte el apartado Propiedades de validación.Propiedad | M | C | Valor predeterminado | Descripción | Propiedad de mandato mqsiapplybaroverride |
---|---|---|---|---|---|
Validar | No | Sí | Ninguna | Esta propiedad controla si tiene lugar la validación. Los valores válidos son Ninguna, Contenido y valor, Contenido y Heredar. | validateMaster |
Acción para anomalía | No | No | Excepción | Esta propiedad controla qué sucede si falla una validación. Sólo puede establecer esta propiedad si Validar se establece en Contenido o Contenido y valor. Los valores válidos son Rastreo de usuario, Anotaciones de error locales, Excepción y Lista de excepciones. |
Propiedad | O | C | Valor predeterminado | Descripción |
---|---|---|---|---|
Sucesos | No | No | Ninguno | Los sucesos que se han definido para el nodo se visualizan en este separador. De forma predeterminada, no se define ningún suceso de supervisión en ningún nodo en un flujo de mensajes. Utilice Añadir, Editar y
Suprimir para crear, cambiar o suprimir sucesos de supervisión para el nodo; consulte Configuración de orígenes de sucesos de supervisión utilizando propiedades de supervisión para obtener detalles. Puede habilitar e inhabilitar sucesos que se muestran aquí seleccionando o deseleccionando el recuadro Habilitado. |
Propiedad | M | C | Valor predeterminado | Descripción | Propiedad de mandato mqsiapplybaroverride |
---|---|---|---|---|---|
<Nombre proporcionado por el usuario> | No | No | El nodo proporciona una tabla en la que el usuario puede Añadir, Modificar o Suprimir filas, cada una de las cuales proporciona un par Nombre: Valor. |