Monday, April 30, 2012

Work Around: SOA 11g (OSB) response to SIEBEL always shows HTTP 500 error

In this blog I am going to share a typical problem I have encountered few days ago while developing an OSB interface for my current project. Scenario is simple SIEBEL is going to call our OSB proxy service and then OSB will pass the request to another service provider after doing certain enrichment to the request. As it is a synchronous call to the service provider OSB will receive a response message in response PIPELINE and return the response to SIEBEL. This is a happy path execution and we observed no problem while our interface goes in happy path.

Problem arise when our interface fails due to some internal error and execution goes to error handler. In our error handler we are creating a common error response with all error details  and send the response back to SIEBEL.  But we observe  that SIEBEL always receive HTTP 500 error.

As a workaround we have changed the OSB reply activity “with success” from “with failure”.

 image

The problem is if we keep OSB reply “with failure” then it sends a SOAP fault to SIEBEL and SIEBEL acknowledges it as HTTP 500 error. So reply “with success” sends the error response as a xml payload instead of SOAP fault. So SIEBEL acknowledges proper error Response.

1 comment:

  1. Hi Anindya, We use SOA 11g Suite (11.1.1.2) with weblogic 10.3.2 and BPEL composite editor. The input payload xml (in Oracle Enterprise Manager) sometimes hits the service with "-" before the xml tag elements and it also carried the normal tag in the header. This occurs randomnly (10% failure rate) and the rest are fine with the right xml which does not contain either the "-" or the " set. I'm unable to conduct myself beyond this point. can you please help with your expert inputs ? You can reply to my gmail id srikanevans@gmail.com. Thanks a lot, S Srikkanth, Chennai, Tamilnadu.

    ReplyDelete