Puntos de control
La implementación de Checkpoint se utiliza para capturar la relación causal entre "pseudo-events " que ocurren dentro de IPF."
El ProcessingContext contiene un actualizable checkpoint campo que se relaciona con un identificador único de un objeto de procesamiento IPF dado.
ConnectorMessageMetadata
public class ConnectorMessageMetadata {
private String messageLogId;
private Checkpoint checkpoint;
private Checkpoint previousCheckpoint;
}
El ConnectorMessage la clase contiene un elemento llamado ConnectorMessageMetadata. Este elemento de metadatos permite que se asignen ciertas propiedades al ConnectorMessage que se transmite entre las etapas del Conector sin influir directamente en el mensaje ProcessingContext.
ReceiveConnector
Para un ReceiveConnector, el ProcessingContext del mensaje entrante se actualiza a través de las siguientes etapas del Connector:
-
Etapa De Correlación
-
Si el mensaje recibido contiene un contexto de procesamiento, cualquier contexto de procesamiento contenido en la correlación se fusionará con el contexto del mensaje. Consulte Fusión de Contexto documentación para más detalles.
-
-
MessageLoggingStage (solo se aplica si un MessageLogger se suministra al conector)
-
El punto de control ProcessingContext del mensaje entrante se pasa al mensaje registrado.
-
Si el proporcionado MessageLogger es una instancia de CheckpointAwareMessageLogger, el MessageLogEntry’s único
messageIdestá asignado al ProcessingContextcheckpointcampo.
-
El ProcessingContext se persiste entonces al resto del flujo del Conector.
SendConnector
Para un SendConnector, el ProcessingContext del mensaje saliente se actualiza a través de las siguientes etapas del Conector:
-
Antes de cualquier etapa en la que se crea la instancia de MessageDelivery
-
Nuevo
messageIdse calcula y se asigna al ConnectorMessageMetadatamessageLogIdcampo. -
Si el proporcionado MessageLogger es una instancia de CheckpointAwareMessageLogger, el
messageIdse asigna a ConnectorMessageMetadatacheckpointcampo. -
El punto de control de un SendRequest ProcessingContext actual se asigna a la ConnectorMessageMetadata.
previousCheckpointcampo. -
Si el ConnectorMessageMetadata
checkpointel campo está presente, tanto el ConnectorMessage ProcessingContext como el ProcessingContext del mensaje de destino (si el mensaje de destino es una instancia deUpdatebleProcessingContextHolder) se actualizan con este valor, creando un vínculo causal entre el objeto IPF anterior y el ProcessingContext.
-
-
MessageLoggingStage (solo se aplica si un MessageLogger se suministra al conector)
-
ConnectorMessageMetadata
previousCheckpointse pasa al Mensaje registrado y se utiliza como un valor paraprocessingContext.checkpoint.
-
El ProcessingContext se persiste entonces al resto del flujo del Conector.
RequestReplySendConnector
Para un RequestReplySendConnector, el ProcessingContext del mensaje saliente puede ser actualizado dependiendo de lo proporcionado. MessageLogger instancia:
-
El proporcionado MessageLogger es una instancia de CheckpointAwareMessageLogger:
-
El ProcessingContext del mensaje saliente se actualiza de acuerdo con el SendConnector funcionalidad.
-
El mensaje objetivo ProcessingContext y el Contexto de Procesamiento de ConnectorMessage se actualizan a Checkpoint para el emitido.message log.
-
El emitido message log para la solicitud se registra en el campo Checkpoint del ProcessingContext original.
-
-
Cuando el RequestReplySendConnector recibe una respuesta.
-
A message log se emite, se guarda en el message log ID del message log emitido durante la fase de solicitud.
-
El punto de control ConnectorMessage se actualiza a la message log ID del message log emitido durante la fase de respuesta.
-
-
-
El proporcionado MessageLogger no es una instancia de CheckpointAwareMessageLogger o no se proporciona en absoluto:
-
El Contexto de Procesamiento de Mensajes del Conector no se actualiza a lo largo del flujo del conector.
-
Ambos emitieron message logs(si corresponde) se registran en el Punto de Control del Contexto de Procesamiento a partir de la solicitud inicial.
-
El ProcessingContext se persiste entonces al resto del flujo del Conector.