Consider the following scenario. In Microsoft BizTalk Server 2004, you create an orchestration. In the orchestration, you use a request-response HTTP send port to send messages to a Web server. An HTTP transport failure occurs. The send port sends a negative acknowledgement (NACK) message to the BizTalk Server orchestration. In this scenario, the orchestration may have a status of "Suspended (not resumable)." However, the request-response HTTP send port in the orchestration has a status of "Suspended (resumable)."
This issue can occur if there are no subscribers for the NACK message in BizTalk Server.
To resolve this issue, use one of the following methods.
Method 1: Use an exception handler
Use an exception handler in the orchestration to handle the NACK message from the send port. After the exception is handled, do the following:
- Terminate the orchestration.
- Pass the MessageID property and the orchestration InstanceID property to a custom Windows Management Instrumentation (WMI) script.
In the WMI script, terminate the send port for the specific message instance. This will guarantee that the send port is terminated at the same time as the orchestration instance. However, the message will be in a suspended state. The BizTalk Server administrator can decide to resubmit the message later. When the message is resubmitted, a new orchestration instance is created. Therefore, the message instance is treated as a new submission.
Method 2: Write the message to a Message Queuing queue
Write the message to a Microsoft Message Queuing (also known as MSMQ) queue after you terminate the send port and before you terminate the orchestration instance. The BizTalk Server administrator can review the message outside BizTalk Server, and then decide to resubmit the message to a new receive location.
Method 3: Create a new orchestration
Create a new orchestration that subscribes to the NACK messages and handles the messages.
This behavior is by design.