Debugging and exception handling
Answer: d
You must enable Failed Message Routing on the Receive Port where processing fails and you must add a filter on
ErrorReport.ReceivePortName
to theSendFailureNotification
Port. TheBTS.ReceivePortName
property is available but will not be promoted in a failed message and cannot be used for routing.Answer: c
RecoverableInterchangeProcessing
is a property on theXMLDisassembler
component. When configured toTrue
, it allows successfully processed messages from a batch to pass through while suspending only the incorrect ones. By default the property isFalse
, which means that one incorrectly formatted message fails the entire batch. Ordered Delivery does not help with this nor does processing instructions.Answer: b
You need to set Enable Unit Testing to
True
. References toMicrosoft.BizTalk.TestTools
andMicrosoft.XLANGs.BaseTypes
are needed, but you do not need to add them manually. Also, when setting Enable Unit Testing to True, the Schema will get theTestableSchemaBase
as its base class, which surfaces theValidateInstance
method on the Schema class. You cannot cast a Schema that does not inherit from theTestableSchemaBase
class to that class and use theValidateInstance
method.Answer: d
You need to use a scope with an exception block to be able to catch the exception. Once caught, the Orchestration will terminate without suspending. The Throw Exception shape will rethrow the exception and cause the Orchestration to become suspended. The Report to Analyst option is connected to the Orchestration Designer for Business Analysts (ODBA) and has nothing to do with exception handling.
Answer: a
In order to get rid of suspended messages on a Send Port that fails processing, you must enable Failed Message Routing and create a subscription that matches any of the
ErrorReport
properties, for exampleSendPortName
. Subscribing toBTS.AckType
andBTS.AckSendPortName
will get you the NACK message (the exception), but you will not avoid the suspended message. Also, Delivery Notification does not help you avoid suspended messages either.Answer: b
You can unit test Schemas, Maps and Pipelines. You cannot easily unit test the Pipeline components by themselves, only inside a Pipeline, since they require the context of a Pipeline. Orchestrations must be deployed to be run and tested.