Hmmm, not happy Microsoft. I’ve been doing quite a lot of work with Microsoft BizTalk Server 2006 of late. I’m making steady progress on a BizTalk solution I recently took over that had some pretty serious design flaws.
I came across an interesting problem this morning whilst load testing. The solution contains a sequential convoy for ordered message delivery. After the convoy has been running for a while it slows down dramatically. The convoy was processing messages initially at roughly one per 1-2 seconds. Not great but not bad considering we’re orchestrating a couple of web service calls and a few hits on a database. After processing approx. 7000 messages the convoy has slowed down to around 1 message every 20 seconds and has even been as bad as 1 message per minute. Very very uncool. The problem may be related to the amount of tracking data being retained in the messagebox database. We are tracking absolutely everything and the messagebox purge jobs run infrequently.
As an excercise I ported the sequential convoy logic to a simple command line app replacing direct binding to the message box with a file location. I managed to get an easy processing rate of 600 messages per minute. So roughly 600 times faster. I’m happy to take a bit of overhead on messaging solutions when using BizTalk Server as we gain a high level of robustness and fault tolerance, but that’s ridiculous. I think a patch might be in order Microsoft.