Retry pattern and Suspend shape – the gotchas!

I have just come out a frustration moment with BizTalk where it was behaving differently when compared to a similar environment. I have a retry pattern in one of my orchestrations and a suspend shape within the catch block. See screenshot below:

One would hope that when the administrator resubmits the suspended message, it would continue from the point it left of (that is continue in the loop). However, what I saw was, the orchestration would go into the “active” state indefinately.  Also, when trying to terminate this active instance, the terminate job would show as pending and the service wouldnt terminate unless the host was restarted.

Further investigation revealed that the suspended orchestration has no related message (or context). See screenshot below.

To eliminate any false positives, I deployed the same app on our test environment and saw that there was a message linked to the suspended orchestration.

This is where I was stumped!

After hours of pondering, I thought of the famous MBV! I ran some analysis via the MBV and I found this in the report:

The value “Missing Restart Msg in the Spool table…” was the light at the end of the tunnel. I quickly ran the Terminator tool to clean the messagebox.

Once done, I ran the MBV analysis again and all critical warnings were gone in relation to “Control Messages”.

I then tried my test again and saw the messages were now linked to suspended orchestrations….

On resubmitting, I would see the message continue from where it left off…

Hope this helps someone having similar issues.