If you are using dynamic ports inside an orchestration, you have to configure 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 database or somewhere that 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 to kick 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 sent 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