This third posting is a talk about the runtime, and how it works.
To start out, I have done a simple test, and you can find my project
It has a simple spreadsheet and a schema for this spreadsheet (both
are described in my previous post) and the setup basically just has a FILE Receive
Location and a send port with a filter that takes everything from the Receive Port
the Receive Location belongs to. My aim is to see how fast the Spread Disassembler
First, a short description of my setup:
My BizTalk installation is in a Microsoft Virtual PC 2007 virtual machine.
The host machine is a Hewlett Packard 8710w laptop with an Intel Core Duo T7700 2,4GHz
CPU, 2GB of RAM and Windows XP Professional Service Pack 3 and completely updated
as of 7’th December 2008.
The guest system is a virtual machine which has one 2,4GHz CPU, 1GB RAM and Microsoft
Windows Server 2003 R2 Enterprise Edition SP2 – also completely updated as of 7’th
I created 999 copies of the same spreadsheet and moved them into a folder watched
by the receive location. They were read, transformed into XML, and output into the
output folder in 3:19 minutes. This is an average of 5 spreadsheets per second.
This took me by surprise – I had expected it to be faster. So I decided to do things
more academic than looking at the time stamps of the output files. After all, there
are PLENTY of functionality that could be the time consumer. So I created a BAM Activity
and View, tracking when my Receive Port starts and when it ends.
A table showing the average processing time can be seen here:
|Number of messages in test||Average processing time per message||Messages per minute|
So it is pretty clear, that performance drops drastically when the load increases.
I do not blame this on the Spread Disassembler, though. Since this
is a virtual PC, with SQL Server on the same box as BizTalk, the mere I/O operations
when writing all the output files to the hard drive conflicts with the I/O operations
of BizTalk using the MessageBox. I find this a much more likely issue for the drop
in performance than that the disassembler should get slower just because more messages
So, to sum up, it seems that the Spread Disassembler can take a pretty heavy load
– Up to 2643 messages per minute (44 messages per second). This is given less than
ideal operating and hardware conditions, but optimal conditions with regards to the
BizTalk Server not doing anything else at the time.
Maybe in a later post I will take a look at more complex spreadsheets/schemas and
also test the performance of the assembler.