1 Reply Latest reply on May 14, 2014 7:54 PM by S.Ananth

    Handling Error Scenario with Oracle Mediator Resequencing Feature




      I am using Oracle mediator resequencer feature. Here is my scenario, with in a group

      1. If msg1 ,msg3, then say msg2 comes to mediator, it will send the message in seq of msg1,msg2 and msg3 to target bpel. However if there is a problem with msg2, fault is thrown back to mediator along with sending the response to source for re-sending correct msg2 back. At this point of time, msg3 is still not send to bpel as group is faulted. Now the big question is if source send msg2 again with same sequenceId, it will fail at mediator bcz of same seq already present. We need to implement it in such a way that when msg 2 comes again, mediator should pass it to bpel first then send msg3 to target bpel( for this we will have to make some thing to the group i believe as it is faulted).

      What can be the approach to handle it. One way I know is modify soa infra tables for mediator sequence. Is there any other better approach to do so?

      2. Second scenario to handle is the case of suspended group where in a msg within the group doesn't arrive within a set timeout period, making following messages suspended and group locked. When that missing msg comes, how to automatically (without requiring manual intervention from em console) process that msg along with msgs with following seqId of this group by making the group ready again?




        • 1. Re: Handling Error Scenario with Oracle Mediator Resequencing Feature

          1. You can update the message payload when 'recovering' the faulted mediator instance for msg2 in EM console. So if it's a data issue, fix/update the data at the source, and do not trigger the service; instead, update the payload in the recovery page in EM console as needed and retry. This will be a manual activity only. I don't think there is any other easy approach/option/configuration available for this.

          2. Not sure if there is a direct option to automatically process suspended messages in a timed-out group once the missing message arrives. It needs a manual intervention where you 'Skip' to unlock the group from time-out and process further message. I think there are Resequencer APIs available that probably can be used to automate such error handling/recovery.