10-07-04 10:47 PM
Hi,
My BizTalk orchestrations communicates with other applications within
our organization through MQSeries. For messages we use Soap. Technical
errors with in service call result in SoapFault messages.
My goal is to receive these SoapFault message as an exception within
my orchestration, such as I would have received from a WebService. Is
this possible, because I can't seem to get it to work.
I tried the following:
* Specifying a SoapFault message as fault message in a send/receive
port. Placing the send en receive shapes within a scope. The scope
then is able to handle the fault message exception, but I can't read
the message because it is of a specific message type (not a
XLangMessage) and not derived form System.Exception. Therefore i can't
seem to read the content.
Any other exception handlers are not able to catch this exception. As
a result my orchestration is suspended and an error is written in the
EventLog.
* Within a custom pipeline component I tried to read the message type.
When recognizing a SoapFault type I tried to throw an exception.
Problem here is that the pipeline didn't give the exception to the
orchestration, but suspended the orchestration again.
* As a solution, I specified the response of my send/receive port of
type System.Xml.XmlDocument. After the receive shape I use a decide
shape to see if the message is of type SoapFault or the excepted
response. If it is the excepted response I cast it to the correct
message type and continue. If it is a SoapFault message I throw a new
Exception.
This works, but I'm not really happy with it.
Does anyone have a better solution?
thanks,
Hidde
[ Post a follow-up to this message ]
|