Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Terminology

  • Broadcast message: a message for all participants (participantId=null and participantType=null)
  • Message to a participant: a message only for a participant (participantId and participantType properly filled).
  • ThreadPoolExecutor: ThreadPoolExecutor executes the given task, into SupervisionAspect class is configured to execute tasks in ordered manner, one by one.
  • Spring Scheduling: into SupervisionAspect class, the @Scheduled annotation invokes "schedule()" method every "runtime.participantParameters.heartBeatMs" milliseconds with a fixed delay
  • MessageIntercept: "@MessageIntercept" annotation is used to intercept method calls using spring aspect oriented programming. In details is used to into SupervisionHandler class to intercept "handleParticipantMessage" methods.

...

Design of a CONTROLLOOP_UPDATE_ACK message

  • Participants sends CONTROLLOOP_UPDATE_ACK messages in response to a CONTROLLOOP_UPDATE  message. It will send a CONTROLLOOP_UPDATE_ACK for each CL-elements moved to the ordered state as indicated by the CONTROLLOOP_UPDATE.
  • ControlLoopUpdateAckListener collects the message from DMaap
  • from the control loop into the message check checks the status of all control loop element elements and check checks if the control loop is primed
  • updates the CL to DB if it is changed
  • MessageIntercept intercepts that event and adds a task to handle a monitoring execution in SupervisionScanner

...

  • to determinate of the next startPhase in a CONTROLLOOP_UPDATE message. 
  • to upgrade CL state: in a scenario that CL state are in kind of transitional state (example UNINITIALISED2PASSIVE), if all CL-elements are moved properly to the specific state, the CL state will be upgrade to that.
  • to retry CONTROLLOOP_UPDATE/CONTROL_LOOP_STATE_CHANGE messages. if there is a CL Element not in the proper state, it will be retry a broadcast message.
  • to retry PARTICIPANT_UPDATE message to the participant in a scenario that CL-runtime do not receive PARTICIPANT_UPDATE_ACT from it.
  • to send PARTICIPANT_STATUS_REQ to the participant in a scenario that CL-runtime do not receive PARTICIPANT_STATUS from it, 

The solution Design of retry, timeout, and reporting for all Participant message dialogues are implemented into the monitoring execution.

...