This is a very interesting post I was more interested in scenario number 1 because I came across that on my project. The problem really was not that the file was too large (7 MB Flat file), and it was not the amount of time it took to stream the flat file to disassemble it (40 mins), do the business logic and send the messages to the queue (20 mins). The problem really was that nothing else could run during the disassembling bit. You start seeing SQL locking issues, as the streaming is one transaction. The way we worked around it is described here which basically bypasses the pipeline disassembling bit and allows us to control the number of message we wanted to deal with at one batch. So even though there is good support in BT2004 for “Large messages” you need to be very careful about the other messages going through your system and how they are affected by this.