Sunday, April 2, 2017

Routing Failure Report

Recently we have started getting Routing Failure Report error(non resumable instances) as can be seen below:


routing failure report error message

routing failure report




But when cross verified by going through the tracked service instance, all looked good as all the instances of the interface for which we got error was completed successfully.

completed instances
No, it is not related to the bug reported with SP1 of BizTalk 2006 R2 , so why suddenly we started getting this error in spite of the instances getting completed (BizTalk 2013 R2) 


Why it happened


There were some errors in the event log at the same time when there was Routing Failure report generated in admin console. 


Orchestration xlang exception


The error says that there was exception raised in orchestration while processing the request, still the question persists - why Routing Failure Report for this?

There is one more thing pointed in error, service xxxx terminated without responding to the operation xxxx, thanks to my colleague Pravin Shinde for pointing out the reason. 

Let me explain the interface

As can be seen from the diagram, interface receives a request and using the information from it, it invokes the target webservice and collects the response. If there is any exception in the process, it is caught by exception block and in it the respective stake holders are notified about it.

But why Routing failure report? - It was because there was exception raised before the step 4 (Send response to caller) and that was over passed,as on exception control goes to exception block. Thus the operation of sending response was not completed although the Orchestration instance completed by sending email to stakeholder.


What to do

Then there might be question what to do with the error -- Terminate it. And yes, connect with stakeholders and let them know or understand yourself what data was incorrect, with a fix on it to avoid unnecessary error in admin console.

2 comments:

  1. What you can do is handle the exception as you are doing currently, create a message with meaningful error information and send back to the receive port, i believe that is req-res port. In that case you will not get this kind of routing failure further.

    Thanks
    Priyankar

    ReplyDelete
  2. Yes, that's an option. But here, the source application doesn't want to receive exception (exception has to be reported to support team) and only functional response is expected by source.

    ReplyDelete