1. Problem
Your integration solution has encountered an error, and you need to resubmit the messages that have been affected by the fault.
2. Solution
The BizTalk
Administrator Console allows you to resume service instances and
resubmit their associated messages. You can locate the suspended service
instance (which will contain the suspended message) that you need to
resume and then choose to resume it, as follows:
Open the BizTalk Administration Console.
Expand the BizTalk Server Administration folder in the left pane, and select your BizTalk group. This opens the Group Hub page.
Click
the Resumable link in the Suspended Items section. This launches a
query window displaying all suspended service instances in your BizTalk
environment that can be resumed.
If
you are unsure if a particular suspended service instance contains the
message you need to resubmit, right-click the instance record in the
results pane, and select Show Messages. This displays a list of messages
referenced by the service instance, allowing you to drill down further
into the message details and interrogate the actual message, its
context, and the flow the message took prior to suspension.
When
you have located the service instance you need to resume, right-click
the record in the results pane, and select Resume Instance, as shown in Figure 1.
In addition to resuming single suspended service instances, you can
also resume multiple instances by holding down the Ctrl key and
selecting multiple rows in the results pane. To resume all instances,
right-click the header record in the results pane, and select Resume
Instances.
3. How It Works
BizTalk errors can be caused
by a number of faults, including hardware or network failure or errors
during pipeline or adapter processing. When errors occur in your
integration solutions, BizTalk typically suspends the service instance
that encountered the error. Services are areas of BizTalk
processing—such as orchestration, messaging, or adapter—and service
instances are specific instances of the orchestration, messaging, or
adapter component. A service instance may contain one or more suspended
messages. BizTalk differentiates between two basic types of suspension
events: resumable (the service instance can be restarted) and
nonresumable (the instance cannot be restarted).
Finding the service
instance that contains the message you want to resubmit is critical. A
number of methods for searching for suspended instances are provided by
BizTalk. If you know that you must resubmit a message that was suspended
in a specific orchestration, a quick way to search for service
instances is to click on the Grouped by Service Name link on the Group
Hub page, as shown in Figure 2.
In addition to
resuming services instances normally, you can also resume service
instances in debug mode. Resuming in debug mode will restart the service
instance at the last successful persistence point prior to the error.
BizTalk also provides Windows Management Instrumentation (WMI) methods for resubmitting suspended service instances, such as MSBTS_ServiceInstance.Resume and MSBTS_HostQueue.ResumeServiceInstancesByID.
Finally, messages can be
manually resubmitted. This process involves finding a particular service
instance or message via the BizTalk Administrator Console, saving the
message data, and using a resubmit mechanism (such as ports or
administrative tools) to resend the message through BizTalk. To save a
message, right-click the record (in the BizTalk Administrator Console),
and select the option for saving the tracked message(s). While this
method is generally more time consuming and task intensive, it can be
particularly helpful when the error is such that it would be
significantly difficult to successfully resume a suspended service
instance. You should consider the following when manually resubmitting
messages:
Security, with regards to encryption and authentication
Data privacy and protection for sensitive information
User error if data is manipulated