Un origen de suceso se implementa en el lenguaje de programación Java, utilizando
(J2SE) Java 2 Platform Standard Edition o J2EE (Java 2 Platform
Enterprise Edition). Un origen de suceso debe enviar sucesos válidos que se ajustan al modelo Common
Base Event. Cada suceso se representa como un objeto Java.
Emisores y fábricas de emisores
Un origen de suceso no interactúa directamente con el servidor de sucesos, sino que interactúa con un objeto denominado un emisor (una implementación de la interfaz com.ibm.events.emitter.Emitter). Un emisor es un objeto local que proporciona métodos para enviar sucesos.
En general, el emisor maneja los detalles de la transmisión de los sucesos, por lo
que no es necesario que el desarrollador de un origen de suceso se preocupe sobre la
ubicación del servidor de sucesos, los valores de filtro o el mecanismo de
transmisión subyacente. Estos tipos de detalles los rige la
fábrica de
emisores, un objeto configurado por un administrador y enlazado con el espacio
de nombres JNDI (Java Naming and Directory Interface). Una fábrica de emisores es una instancia de
com.ibm.events.emitter.EmitterFactory y se utiliza para crear objetos de emisor.
Asimismo, define el comportamiento de los emisores que crea; incluye valores de:
- La modalidad de transacción preferida. Este valor especifica si el emisor intenta enviar cada suceso en una transacción nueva o en la transacción actual.
Un origen de suceso puede cambiar este valor para un emisor o envío de
sucesos concretos pero el perfil especifica el valor por omisión. Este valor sólo es válido en la plataforma J2EE. La plataforma J2EE no proporciona controles de transacción.
- La modalidad de sincronización preferida. Este valor especifica si los sucesos se envían utilizado la transmisión síncrona o asíncrona. La transmisión síncrona significa que el método
sendEvent() no devuelve el control al llamante hasta que se ha procesado el suceso. La transmisión asíncrona significa que el método devuelve el control inmediatamente después de someter el suceso y el llamador no tiene más información acerca del proceso del suceso. Un origen de suceso puede
cambiar este valor para un emisor o por un envío de sucesos, pero el valor
por omisión lo especifica el perfil.
- Los perfiles de transmisión que se han de utilizar. Un perfil de transmisión es un objeto de configuración que define un mecanismo de transmisión específico para enviar sucesos al servidor de sucesos. Un perfil de fábrica de emisor puede especificar dos perfiles de transmisión, uno para la transmisión síncrona y otro para la transmisión asíncrona.
Un origen de suceso no puede cambiar los perfiles de transmisión que utiliza un emisor.
- La configuración de filtros que se ha de utilizar para el emisor. La
configuración de filtros define qué plug-in de filtros se utiliza para
filtras sucesos enviados al emisor. Common Event Infrastructure incluye un
plug-in de filtros por omisión, pero también puede implementar su propio
plug-in de filtros, si desea utilizar un motor de filtrado distinto.
Un administrador puede crear varios perfiles de fábrica de emisor, cada uno de los cuales definirá una configuración de emisor diferente. Un origen de suceso obtiene un emisor utilizando la fábrica de emisor asociada a un perfil de fábrica de emisor existente. Por lo tanto, todos los emisores creados por una fábrica de emisor determinada tendrán el mismo comportamiento por omisión. Para obtener más información, consulte el artículo Obtención de un emisor.
Nota: Si se ejecuta el origen de suceso con la seguridad de Java
2 habilitada y desea generar sus propios GUID (identificadores exclusivos globalmente), debe modificar el
archivo de política para habilitar el proceso correcto. Añada las siguientes entradas:
permission java.io.FilePermission "${java.io.tmpdir}${/}guid.lock",
"read,write,delete";
permission java.net.SocketPermission "*", "resolve";