Blogging BizTalk

Lets Discuss BizTalk

Understanding Resume Pattern In BizTalk

So what if you are placed against a scenario to design a process which does multiple service calls and if one of the service return a fault with message ” ______field is not available at the moment but it will be after 2 hours” (May be because it is trying to look up some value from the database which is not yet created but soon will be created) you should be able to retry.

Note: This implementation is useful when you are making multiple synchronous service call, for example in an orchestration.If that is not the case you are better off having the retry done from the send port.

We achieve this by wrapping our send receive port within a scope which will suspend in event of exception.

I am trying to demo this here.

1>Create an orchestration which will look something like this. I will breakdown each component’s explanation further.


We have used two nested scopes having the “Long Running” transaction type, this is important since the atomic transaction is designed to just complete and cannot be resumed.

2>Use a loop shape and put your inner transaction scope within. Also define a variable which will govern if the loop should be executed or not.


3>Within the scope_suspend (That what I have named it, you can discard if you don’t like it ;-)) add an exception block. Also add the message construct shape to create your service request and have your send receive shape to service within as shown in the picture. In the exception block add the suspend shape. The variable which is governing execution of the loop has to set appropriately within exception block and outside exception block just after your service response receive shape.  your solution is ready.


How It Works:

When the orchestration makes the service call and there is a valid response returned from it goes to the 1st expression shape where we reset the flag for looping to insure it exits  the loop.

When the orchestration makes the service call and bumps into fault instead of a valid response it hits the “scope_suspend” catch exception block. There it sets the looping flag to true and goes to suspended resumable mode courtesy our next suspend shape. At this point the state of your orchestration is persisted.

So when you resume it the next time it basically restart the inner scope and check the loop flag which directs it to make the service call again.

That completes the demo.

Please note that Biztalk send port retires 3 times by default in case of failure. You may want to change this setting to 0 retries in case your service method is doing any add update or delete. Also you will see two suspended instances in admin console, one the orchestration which is resumable and other is the send port which upon resume will cause no effect to the orchestration. The suspended send port thou doesn’t brings any harm to your BT server but it may pile up in time and may cause performance issues. So you may want to enable failed message routing to take care of this. I will cover this topic later in a separate blog.

Please leave a comment if you need the source code or need any help implementing this.

3 responses to “Understanding Resume Pattern In BizTalk

  1. Pingback: Auto Resume An Orchestration | Blogging BizTalk

  2. Pingback: BizTalk Error “A Correlation Set Can Be initialized Only Once” : An alternative solution | Blogging BizTalk

  3. manishrules May 28, 2015 at 3:30 pm

    please sahre the code to

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

D Goins Insperience

Technological outformation for this day and age

[INACTIVE BLOG] Connected Thoughts - Thiago Almeida

Connected systems and the occasional picture


My BizTalk Experiences

BizTalk Server Tutorial

BizTalk Server Concepts and Common Errors

Extremely Talented Monkeys

A Technical Blog by Ed Jones: Azure, .NET, BizTalk, WCF, and SQL Server

On All Things Web

Discussing web development without limits

Vikas Bhardwaj's Blog

An attempt to share my experience and learning

Cloud develop

a blog about (cloud) development... because I'm a nerd

Hooking Stuffs Together

My learning logs from day to day work experience about Integration platform using Microsoft technologies.

Connected Pawns

Mainly BizTalk & Little Chess


a blogger in the process.

MS Innovations Blog

Tips, Tricks, and Workarounds for BizTalk and other Microsoft technologies


Katradhu Kaialavu,Kalladhadhu Ulagalavu!

Vijay Kannan Integration Technical Articles

BizTalk, WCF, ESB ToolKit, Azure, MuleSoft

Mind Over Messaging

Musings on BizTalk, Azure, and Enterprise Integration

Victor Fehlberg's Tech Postings

Lessons learned in BizTalk Server, C# and Java

Adventures inside the Message Box

BizTalk, Azure, and other tools in the Microsoft stack - Johann Cooper

%d bloggers like this: