Operaciones de Dominio

Esta página enumera las diversas operaciones que están disponibles a nivel de dominio global como llamadas a métodos estáticos.

passivate Descargue un flujo de la memoria

Esto detendrá una instancia de flujo (incluso si no ha alcanzado un estado terminal) para ahorrar memoria, si se sabe que ha llegado a un paso de larga duración, por ejemplo.

Tenga en cuenta que los mensajes dirigidos a esta instancia aún se entregarán, pero IPF recargará los eventos de ese flujo desde el diario en lugar de tenerlos ya almacenados en memoria.

La llamada es:

XxxDomain.passivate("MyBehaviour|some-id-23149082");

Dónde Xxx es el nombre de la IPF solution conteniendo el flujo relevante, y MyBehaviour es el nombre del flujo en sí.

getAggregate: Obtenga el agregado (estado) de un flujo

Para recuperar el estado actual de una instancia de flujo, puede llamar a:

XxxDomain.getAggregate("MyBehaviour|some-id-23149082");

Esto devolverá un CompletionStage<Aggregate> que se completa cuando se devuelve el agregado.

El Aggregate será del tipo MyBehaviourAggregate que contendrá:

  • El estado actual

  • El último código(s)/descripción(es) de razón de fallo

  • Todos los datos empresariales

  • Todos los eventos

 No utilice `getAggregate` como parte del procesamiento de un flujo (por ejemplo, como parte de una implementación de adaptador).
Esto ralentizará el procesamiento de manera considerable, especialmente cuando esté bajo carga.

getAggregate`las llamadas son atendidas por el mismo `EventSourcedBehaviour actor que es responsable de persistir eventos. Dado que este es un actor tradicional, solo puede atender una solicitud a la vez.

Si la carga es lo suficientemente significativa, el actor estará sobrecargado por el servicio.getAggregate solicitudes en lugar de recibir comandos y persistir eventos resultantes.

Si encuentra que necesita utilizar getAggregate para obtener un conjunto de datos como parte de un adaptador, defina ese conjunto de datos como un Business Data Elemento en el Dominio Externo en su lugar. Esto lo hará disponible para su adaptador sin necesidad de usar getAggregate.

getStatus: Obtenga el estado de un flujo

Esta operación es similar a la anterior, pero solo devolverá el estado actual. También devuelve como un CompletionStage<AggregateStatus>.

Para recuperar el estado:

XxxDomain.getStatus("MyBehaviour|some-id-23149082");

abort: Detenga la ejecución de un flujo

Este comando toma un reason argumento y:

  • Establece el estado del flujo a ABORTED

  • Establece el estado resultante a Aborted

  • Publica un AbortedEvent con la razón especificada en la llamada

  • Cancela todas las tareas programadas relacionadas con este flujo.

Para abortar un flujo:

XxxDomain.abort("MyBehaviour|some-id-23149082", "some special reason");
Una vez que un flujo ha sido abortado, no puede ser reanudado, incluso con el resume función a continuación.

resume: Continúe la ejecución de un flujo

Esta operación invocará el revitalización de la acción proceso para un flujo que intenta mover una transacción que parece estar atascada al siguiente estado.

Tenga en cuenta que esta operación no puede reanudar transacciones abortadas.

Para reanudar un flujo:

XxxDomain.resume("MyBehaviour|some-id-23149082");