I’ve been having performance issues with one of my client’s BizTalk 2006 R2 deployment. Specifically, one of their high-volume hospital client complaint that it was taking up to 1 minute to get an ACK back from the HL7 Accelerator 2.0.
The client thought it has to do with network latency and started going down that road. However, I knew that latency can’t be the issue because we were getting the inbound messages just fine and that the ACK delivery time degrades through the day. So I started looking into the configuration for that hospital and here’s what I found:
- This high-volume hospital shares the same receive and orchestration process host as another high-volume hospital. So deploying dedicated process hosts for the hospital provided minor relieve.
- The orchestration for this hospital executes a send pipeline inside an Expression Shape and slowed things down quite a bit. A simple re-architecture did the trick.
Due to my lack of knowledge with the HL7 Accelerator, I had assumed ACKs are returned to the originating party soon after the message gone through the receive pipeline. Instead, it this scenario, it appears ACKs are not generated/returned until after the Orchestration notifies the Receive Port that the message has processed.
Live and learn!
