El almacén de sucesos es una tabla que contiene sucesos que representan cambios de datos hasta que el adaptador de sondeo puede procesarlos. El adaptador utiliza el almacén de sucesos para realizar el seguimiento de las entidades de sucesos.
Para utilizar el proceso de entrada, debe utilizar el diseñador de aplicaciones de PeopleTools para crear un proyecto personalizado para la notificación de sucesos. El proyecto personalizado utiliza dos funciones PeopleCode que determinan el modo en que se procesan los sucesos futuros, y el proyecto personalizado crea el almacén de sucesos que el adaptador necesita para el proceso de entrada. Cada vez que se crea, se actualiza o se suprime un objeto de negocio, la función PeopleCode utilizada en el proyecto y luego añadida a la interfaz de componente inserta un nuevo registro en el almacén de sucesos, con el nombre de objeto, las claves y el valor de estado adecuados.
Con el proceso de entrada, el adaptador sondea las entidades de sucesos del almacén de sucesos a intervalos de sondeo configurados. En cada llamada de sondeo, el adaptador procesa un número configurado de sucesos. El orden del proceso de sucesos se basa en el orden ascendente de prioridad y el orden ascendente de la indicación de la fecha y hora del suceso. Los sucesos con el estado Preparado para sondeo (0), se eligen para el sondeo en cada ciclo de sondeo. El adaptador utiliza el nombre de objeto y la clave de objeto para recuperar el objeto de negocio correspondiente.
Si establece la propiedad de especificación de activación AssuredOnceDelivery en true, se establece un valor XID (ID de transacción) para cada suceso del almacén de sucesos y se utiliza para asegurar que un suceso se entrega una sola vez a la aplicación de destino. Después de que se ha obtenido un suceso para su proceso, el valor XID de dicho suceso se actualiza en el almacén de sucesos. El suceso se entrega entonces a su componente de exportación correspondiente y su estado se actualiza para mostrar que la entrega del suceso se ha completado. Si la aplicación se detiene antes de que el suceso se pueda entregar al componente de exportación o si la entrega ha fallado, es posible que el suceso no se procese completamente. En este caso, el valor XID representa el estado en proceso y la columna XID garantiza que el suceso se vuelva a procesar y enviar al componente de exportación. Una vez que la conexión de base de datos se vuelve a establecer o que el adaptador se inicia de nuevo, el adaptador comprueba si hay sucesos en la tabla de sucesos que tengan un valor Preparado para sondeo (0) en la columna XID. El adaptador procesa primero estos sucesos y, a continuación, sondea los otros sucesos durante los ciclos de sondeo.
El adaptador utiliza un proceso especial para los sucesos que tienen un código de estado (99), que indica que se producirán en el futuro. Durante un ciclo de sondeo, cuando el adaptador recupera sucesos con un estado futuro, el adaptador compara la hora de sistema con la indicación de fecha y hora de cada suceso. Si la hora del suceso es anterior o igual a la hora del sistema, el adaptador procesa el suceso y cambia el estado de suceso a Preparado para sondeo (0).
Si desea que el adaptador procese sucesos de estado futuro en el momento actual, utilice la función IBM_PUBLISH_EVENT en lugar de IBM_FUTURE_PUBLISH_EVENT. Si lo hace, significa que el suceso se identifica como Preparado para sondeo (0) en lugar de Futuro (99).
A medida que se recuperan y se procesan sucesos del almacén de sucesos, el estado del suceso cambia para reflejar el ciclo, como se muestra en la tabla siguiente.
Nombre abreviado de estado | Descripción | Valor de tabla de sucesos |
---|---|---|
Error al procesar suceso | Se ha producido un error durante el proceso de sucesos. | -1 |
Preparado para sondeo | El adaptador aún no ha elegido el suceso. El suceso está preparado para que lo elijan. | 0 |
Satisfactorio | El suceso se ha entregado al gestor de sucesos. | 1 |
Suprimido | El suceso se ha procesado satisfactoriamente y se elimina del almacén de sucesos. | 4 |
Sucesos futuros | Estos sucesos deberían procesarse en el futuro. | 99 |