A BizTalk adaministrator may find it's difficult to monitor and identify any potential performance issues of their BizTalk solution. Especially for some intermittent symptoms. Sometimes problem observation is fully based on end users' feedback.
Therefore the question is:
Is there any simple and proactive way to track and find potential performance issues of BizTalk?
The answer is Yes. We can use Performance Monitor tool to achieve with many useful performance counters provided with BizTalk.
For eaxmple, say we have a typical BizTalk application which has Orchestration published as WCF service, it invokes backend Web Services based on contents in the requests received and sends responses back to the original clients.
In this case, let's add the following counters for monitoring:
- BizTalk:Messaging - Documents received/Sec - (Instance: Isolated Host)
- XLANG/s Orchestrations - Orchestrations completed/sec - (Instance: Orchestration Host)
- BizTalk:Messaging Latency - Outbound Latency (sec) - (Instance: Send Host)
- BizTalk:Message Box:Host Counters - Host Queue - Number of Instances - (Instance: Orchestration Host)
A sample monitoring result is the following:
As you can see, the yellow part is received documents(sec) and the blue part is orchestrations completed(sec), which is quite similar. Also, the number of active instances(green part) in the queue is basically stable(no incremental trend). All of these tell us that the overall throughput of the BizTalk server should be ok.
However, the problem is with the red part - the outbound latency of send host. The result show us that sometimes the two-way send ports' response time could be extremely long(over 40 seconds), which indicates a typical intermittent performance issue. Further troubleshooting(Network Monitor traces) did find out a problematic backend web service caused the issue.