If you are using dynamic ports inside orchestration, you have to configuring BTS.RetryCount and BTS.RetryInterval properties on the message you want to send to implement retry mechanism:
myMessage(BTS.RetryCount) = 5; myMessage(BTS.RetryInterval) = 5; //(in minutes)
You also have to ensure that the property Delivery Notification is not set to “Transmitted”.
You might also consider setting up a backup transport in case after the retry count the message has still not gone through. You could for instance then deliver the message to a file drop location, or a db or something so you have ultimate control.
Note: If you need backup transport you will have to implement it in your process, you have to enable Routing on the send port which will allow you tokick off another process if the send port was unable to deliver the message.
Delivery Notification = “Transmitted”
If this property is set to Transmitted it means that your orchestration will receive an exception if the message cannot be send to the destination.
The Delivery Notification flag on the Send Port indicates that the orchestration must be NOTIFIED back, in case the message has not been received by the destination. Delivery Notification works only when the Retry Count set to 0. When a message cannot be delivered, a DeliveryNotificationException is raised and the exception needs to be handled by the Orchestration.
Note: inside Exception handler (DeliveryNotificationException) you can implement your backup transport
Tags: BizTalk | Dynamic Send Port