WebSphere Message Broker, Versión 8.0.0.5 Sistemas operativos: AIX, HP-Itanium, Linux, Solaris, Windows, z/OS

Consulte la información sobre la última versión del producto en IBM Integration Bus, Versión 9.0

Acceso a la memoria caché global con un nodo JavaCompute

Puede utilizar un nodo JavaCompute para interactuar con una correlación en una memoria caché global o una cuadrícula de WebSphere eXtreme Scale externa.

Antes de empezar:
Puede utilizar un nodo JavaCompute para almacenar datos en una correlación global. A continuación, puede crear otro nodo JavaCompute que pueda obtener los datos de la memoria caché global para el proceso o direccionamiento. El nodo JavaCompute utiliza el objeto MbGlobalMap para acceder a la memoria caché global o a la cuadrícula externa. Esta clase puede utilizarse para obtener una correlación y para poner u obtener los datos en una correlación. No puede crear una correlación explícitamente, pero si obtiene una correlación que no existe, la correlación se crea automáticamente. Cuando se obtiene una correlación global de una cuadrícula externa, el método getGlobalMap establece una conexión con la cuadrícula si aún no existe una.

Las interacciones con la memoria caché suceden fuera de la transacción de flujo de mensajes y se confirman inmediatamente Si se genera una excepción en sentido descendente del nodo que interactúa con la memoria caché, las interacciones de memoria caché no se retrotraen.

Los pasos siguientes describen cómo un flujo de mensajes añade datos a una correlación y otro flujo obtiene los datos de esa correlación.

  1. Cree un flujo de mensajes que contenga un nodo JavaCompute.

    Puede colocar el nodo JavaCompute antes o después de un nodo MQOutput. En el ejemplo siguiente, el nodo JavaCompute se coloca después de un nodo MQOutput para que el nodo JavaCompute pueda utilizar el ID de mensaje del mensaje de salida.

    El gráfico muestra un nodo MQInput que está conectado a un nodo MQOutput, que está conectado a un nodo JavaCompute.

  2. Efectúe una doble pulsación en el nodo JavaCompute. Se abre el asistente Nueva clase de nodo JavaCompute.
  3. En el panel Clase de nodo JavaCompute, proporcione la información adecuada y, a continuación, pulse Siguiente. Puede aceptar los valores predeterminados pulsando Siguiente.
  4. En el panel Plantilla de clase de nodo JavaCompute, seleccione la plantilla apropiada para el escenario y, a continuación, pulse Finalizar.

    El archivo Java™ de plantilla se abre en el editor, indicando dónde puede añadir su propio código.

  5. Para obtener una correlación de la memoria caché incorporada, o crear la correlación si no existe, añada el objeto MbGlobalMap, tal como se muestra en el ejemplo siguiente. El objeto MbGlobalMap también se describe en la documentación de la API de Plug-in Java.
    MbGlobalMap globalMap = MbGlobalMap.getGlobalMap("MyMap");
    Este ejemplo obtiene la correlación denominada "MyMap". Si la correlación no existe, se creará. O bien, cuando utiliza la memoria caché incorporada, puede utilizar la correlación predeterminada no especificando un nombre de correlación, tal como se muestra en el ejemplo siguiente. Cuando se conecta a una cuadrícula externa, no existe ninguna correlación predeterminada. Debe especificar un nombre de correlación válido en la cuadrícula externa.
    MbGlobalMap globalMap = MbGlobalMap.getGlobalMap();
    La memoria caché utiliza correlaciones dinámicas de WebSphere eXtreme Scale. Se permite cualquier nombre de correlación, además de los nombres que empiezan por SYSTEM.BROKER, que está reservado para uso del intermediario. La correlación predeterminada se denomina SYSTEM.BROKER.DEFAULTMAP; puede utilizar o borrar esta correlación.
    Para obtener una correlación de una cuadrícula externa, añada el objeto MbGlobalMap, especificando el nombre de la correlación en la cuadrícula externa y el nombre del servicio configurable que se utiliza para conectar con la cuadrícula:
    MbGlobalMap xc10Map = MbGlobalMap.getGlobalMap("MyMap.LUT","xc10Connection");
    En este ejemplo, la correlación, "MyMap.LUT", se encuentra en una cuadrícula externa en un dispositivo XC10. El servicio configurable que se utiliza para conectarse a la cuadrícula se denomina "xc10Connection".
  6. Opcional: Especifique el tiempo, en segundos, que los datos permanecen en la memoria caché global antes de que se eliminen automáticamente.

    Este tiempo se conoce como el tiempo de vida y se cuenta a partir de la fecha de última actualización de esa entrada de correlación. Este tiempo se especifica cuando se obtiene un objeto MbGlobalMap. El valor se aplica a todas las entradas de memoria caché que se crean utilizando ese objeto MbGlobalMap. Para obtener instrucciones detalladas, consulte Eliminar datos de la memoria caché global.

  7. Para poner datos en la correlación, debe crear un par de clave y valor en la correlación, como se muestra en el ejemplo siguiente. Para claves y valores, se soportan series y tipos primitivos Java. Sólo para la cuadrícula incorporada, las claves también pueden ser matrices de primitivos o series.
    globalMap.put(key, val);
  8. Guarde el flujo de mensajes.
  9. Para acceder a los datos almacenados de otro flujo de mensajes, cree un flujo que contenga un nodo JavaCompute.

    Por ejemplo, el flujo de mensajes siguiente contiene un nodo JavaCompute que recupera la información adecuada de la correlación y, a continuación, envía un mensaje de respuesta a través de un nodo MQReply.

    El gráfico muestra un nodo MQInput que está conectado a un nodo JavaCompute, que está conectado a un nodo MQReply.

  10. Repita los pasos 2, 3 y 4 para crear un archivo Java para el nuevo nodo JavaCompute.
  11. Utilice el objeto MbGlobalMap para obtener la correlación que ha creado en el paso 5 y, a continuación, obtener los datos que ha añadido a la correlación en el paso 6. Si sabe que los datos que está recuperando son una serie, por ejemplo, especifique string cuando obtenga los datos, como se muestra en el ejemplo siguiente.
    MbGlobalMap globalMap = MbGlobalMap.getGlobalMap("MyMap");
    ...
    String val = (String)globalMap.get(key);
    El ejemplo siguiente muestra cómo obtener los datos que ha añadido a una correlación en una cuadrícula externa:
    MbGlobalMap xc10Map = MbGlobalMap.getGlobalMap("MyMap.LUT","xc10Connection");
    ...
    String val = (String)xc10Map.get(key);

    Para evitar que la memoria caché alcance un tamaño demasiado grande, cuando haya terminado con un par de clave y valor, utilice el método remove() para suprimir esos datos de la correlación.

    Puede utilizar la asistencia de contenido para listar las opciones disponibles cuando construye código Java. Para acceder a la asistencia de contenido, ponga el cursor en el punto de inserción y, a continuación, pulse Editar > Asistencia de contenido o pulse Control+Espacio. Por ejemplo, si escribe "myMap" y, a continuación, pulsa Control+Espacio, puede elegir en una lista de opciones, incluidas las acciones siguientes.
    • remove, que elimina un solo objeto de una memoria caché global
    • containsKey, que indica si existe una clave en una correlación
    • update, que actualiza un objeto existente
    Todas las opciones disponibles se documentan en el Javadoc para la API de Plug-in Java (consulte API Java de Message Broker). También puede acceder al Javadoc para la API de Plug-in Java mediante el menú Inicio en Inicio > Programas > IBM WebSphere Message Broker 8.0.0.0 > APIs de programación Java > Documentación de la API de Plug-in de Java.
  12. Guarde el flujo de mensajes.
  13. Despliegue los flujos de mensajes.
Avisos | Marcas registradas | Descargas | Biblioteca | Soporte | Comentarios

Copyright IBM Corporation 1999, 2014Copyright IBM Corporation 1999, 2014.

        
        Última actualización:
        
        Última actualización: 2015-02-28 17:00:53


Tema de tareaTema de tarea | Versión 8.0.0.5 | bc23770_