Versions Compared

Key

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

...

The consumption ofMessageWithUnreachableHandlers is, in some way, similar to the way we are consuming TimedOutMessage objects in "Response Timeout" design. A synchronized collection of MessageWithUnreachableHandlers objects is hold by UCSControllerService. A new processor that polls from that collection and yields needs to be created.
The new processor [UCSProcessMessagesWithUnreachableHandlers?] will process each MessageWithUnreachableHandlers in the following way:
1.- if the reason of the MessageWithUnreachableHandlers being processed is ALL_HANDLERS, the processor will create a new FlowFile for each Message in the original Message's onFailureToReachAll property. These FlowFiles are then transfered to REL_ALL_HANDLERS.
2.- if the reason of the MessageWithUnreachableHandlers being processed is SOME_HANDLERS, the processor will create a new FlowFile for each Message in the original Message's onFailureToReachAny property. These FlowFiles are then transfer to REL_SOME_HANDLERS.
3.- if the reason of the MessageWithUnreachableHandlers being processed is ALL_HANDLERS and the original Message's onFailureToReachAll is empty OR if its reason is SOME_HANDLERS and the original Message's onFailureToReachAny is empty, an empty FlowFile is created and transfered to REL_NO_ALTERNATIVE_MESSAGE. 

At this point, any Message sent through REL_ALL_HANDLERS and/or REL_SOME_HANDLERS can be treated by UCS as a regular incoming Message. This new processor can be then connected to the existing UCSValidateMessage processor in UCS workflow. 

...