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.
- 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.
- Efectúe una doble pulsación en el nodo JavaCompute. Se abre el asistente Nueva clase de nodo JavaCompute.
- 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.
- 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.
- 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".
- 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.
- 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);
- Guarde el flujo de mensajes.
- 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.
- Repita los pasos 2, 3 y 4 para crear un archivo Java
para el nuevo nodo JavaCompute.
- 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 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
.
- Guarde el flujo de mensajes.
- Despliegue los flujos de mensajes.