"Gotcha" When Deleting Suspended BizTalk Messages

Today I’m sitting in a “BizTalk Administration” class being taught to 20 of my co-workers by my buddy Victor.  I’ve retired from teaching internal training classes on BizTalk, so the torch has been passed and I get to sit in the back and heckle the teacher.

One thing that I finally confirmed today after having it on my “todo” list for months was the behavior of the BizTalk Admin Console when terminating messages.  What I specifically wanted to confirm was the scenario presented below.

Let’s say that I have 10 suspended messages for a particular receive port.

What happens if while I’m looking at this, another 5 suspended messages come in for this service instance?  I’ll confirm that 5 more came in via another “query” in the console.

So we know for sure that 5 more came in, but, let’s say I was still only looking at the “Suspended (resumable)” query tab.  If I choose to”terminate” the 10 suspended messages, in reality, all suspended messages that match this search criteria (now 15) get terminated.

So even though the default query result set showed 10 suspended messages, the “terminate” operation kills anything that matches this suspension criteria (15 messages).   How do we avoid this potentially sticky situation?  The best way is to append an additional criteria on your Admin Console query.  The “Suspension Time” attribute allows you to put a date + time filter on your result set.  In the screenshot below, you can see that I’ve taken the greatest timestamp in my visible result set and used that.  Even though additional failures have occurred, then don’t get absorbed by this query.

So, if you are a regular BizTalk administrator, and don’t already do this (and maybe I’m the only sap who didn’t realize this all along), make sure that your suspension queries always have a date restriction prior to terminating (unless you don’t care about messages that have arrived since the query last executed).

Technorati Tags:

Author: Richard Seroter

Richard Seroter is Director of Developer Relations and Outbound Product Management at Google Cloud. He’s also an instructor at Pluralsight, a frequent public speaker, the author of multiple books on software design and development, and a former InfoQ.com editor plus former 12-time Microsoft MVP for cloud. As Director of Developer Relations and Outbound Product Management, Richard leads an organization of Google Cloud developer advocates, engineers, platform builders, and outbound product managers that help customers find success in their cloud journey. Richard maintains a regularly updated blog on topics of architecture and solution design and can be found on Twitter as @rseroter.

One thought

  1. Never delete from the list header. Always delete the individual messages by selecting the actual messages from the list. Double click the suspended message list and it will bring up a new list of the individual messages with message IDs, date time stamps, etc. Not much documentation out there telling you not to do this, it’s just assumed. You’re right, it is a little “Gotcha”!

Leave a Reply

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

WordPress.com Logo

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

Facebook photo

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

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.