NAcks or Negative Acknowledgments are small SOAP messages that exist in BizTalk when a messaging error occurs. This happens when adapters fail, pipelines fail, messages do not match subscriptions, ect.
These messages can be subscribed to and a business process can be written to react to all of these messages or specific error codes.
This sample Orchestration shows how simple it is to catch these messages. To subscribe to a NAck, just create a subscription to: BTS.AckType = NACK. It’s that easy!
Download: NAck Catching Sample
Setup: Download and extract the solution. Create a receive port that causes a routing failure. Drop a message and watch for the output in the Out folder.
For a routing failure NAck, the following properties are available in the message context and could be accessed inside the Orchestration:
AckDescription
AckFailure Category
AckFailure Code
AckID
AckInboundTransportLocation
AckOwnerID
AckReceivePortID
AckReceivePortName
AckType
With this information, logic could be included inside the Orchestration to extract / reprocess a message or log the error to an additional notification facility (other then the event log since it would already be logged there).
Dear Stephan,
thanks for the gr8 post. but i need some more info as how we can use the properties in Orchestration. could you please send some inputs… that will be gr8 help . Thank you.
Regards,
Shrilata
one more thing, the sample you attached is working perfectly fine and i am getting the SOAP NACK to my destination folder but i have enhanced the project and now i want to post file to the destination if filter set as ACK and if NACK then soap failure acknowledgement. which is not working…note i set the filter at send port , is that the right place , when i try to give the receive shape( as in attached sample )that is not working for me ….