Identify source of SOAP fault

We are working to build a common SOAP fault handler, no matter what orchestration or external system(as response to a request) is throwing. The idea is simple, have one place to handle all SOAP faults(write to DB or generate e-mail notification etc). But one drawback found is, we can't able to identify who throw the SOAP fault like orchestration name, any idea how to find it or what changes needs to be made to have this ?

After searching the internet, I can find how to handle SOAP fault(like message type or create the port ), but i'm also looking for source of fault.

TIA
Jaya

July 22nd, 2015 9:38am

In practice, SOAP Faults would only come from Send Ports which should be available on the Context.

Free Windows Admin Tool Kit Click here and download it now
July 22nd, 2015 10:17am

Yes, I have seen that on send ports, I can get that send port name, but in my scenario, we use same send port from multiple orchestrations as all my transactions go to the same end point.
In this case, I can't determine the orchestration(that is tied to send port) just by send port name. Some orchestrations have same fault handling or other set of orchestrations have different fault handling, so I really need to know the orchestration.

Thanks
Jaya

July 22nd, 2015 1:19pm

You need to have one Schema with few of the properties required for Email Trigger 

Properties like this

ProcessName,ServiceName,Orchestration Name etc..

You need to have a common Orchestration to receive Error Message From message Box  using Direct Bind port and embed  logic for send email or log it to File share .

In each of your orchestration Soap Fault exception block you need to prepare error message and Set the ProcessName,Orchestration,  Service Name and Send it to Message Box with Direct bind port.

Free Windows Admin Tool Kit Click here and download it now
July 22nd, 2015 2:34pm

Got it.  In that case, you can use  BTS.SendingOrchestrationType.  That's the fully qualified Type name so you will have to parse out the Orchestration's local name.

If it's a messaging only scenario, BTS.ReceivePortName is comparable.

July 22nd, 2015 2:59pm

Got it.  In that case, you can use  BTS.SendingOrchestrationType.  That's the fully qualified Type name so you will have to parse out the Orchestration's local name.

If it's a messaging only scenario, BTS.ReceivePortName is comparable.

Free Windows Admin Tool Kit Click here and download it now
July 22nd, 2015 6:55pm

Got it.  In that case, you can use  BTS.SendingOrchestrationType.  That's the fully qualified Type name so you will have to parse out the Orchestration's local name.

If it's a messaging only scenario, BTS.ReceivePortName is comparable.

July 22nd, 2015 6:55pm

Got it.  In that case, you can use  BTS.SendingOrchestrationType.  That's the fully qualified Type name so you will have to parse out the Orchestration's local name.

If it's a messaging only scenario, BTS.ReceivePortName is comparable.

Free Windows Admin Tool Kit Click here and download it now
July 22nd, 2015 6:55pm

Hi Jaya ,

There is an option to create exception object from the schema (exception schema )using xsd.exe and assign the soap exception object to the schema exception object .You can populate the exception field as per the exception traced from SOAP protocol and publish directly to message box .

There will be generic exception Orchestration which will be responsible for sending soap exception to the desired port.

Thanks
Abhishek

July 23rd, 2015 1:15am

This topic is archived. No further replies will be accepted.

Other recent topics Other recent topics