Troubleshooting BizTalk Server Performance
This section contains general guidelines for diagnosing and resolving performance problems related to the BizTalk Messaging Engine.
Plan and test to determine your Messaging Engine performance needs before deploying your solution into a production environment. This will help you build out your BizTalk Server and SQL Server environments appropriately.
Plan for overhead associated with any fault tolerance or backup and recovery needs
Will the SQL Server disks be configured as RAID arrays?
Will Windows Clustering be used for BizTalk Hosts, SQL Server, or Enterprise Single Sign-On? For more information see Planning for High Availability.
Will Network Load Balancing be used?
What are the backup and recovery requirements for the environment? For more information, see Backing Up and Restoring BizTalk Server Databases.
Follow the guidelines in Planning for Sustained Performance to plan, test, and scale your BizTalk Server and SQL Server environment.
Follow the guidelines in Tracking Performance Characteristics to plan for overhead associated with document tracking requirements.
Follow these steps to optimize an existing BizTalk Server environment:
Follow the guidelines in Identifying Performance Bottlenecks to pinpoint possible bottlenecks in your BizTalk Server environment.
Follow the guidelines in Optimizing Resource Usage Through Host Throttling to maximize document throughput for the BizTalk Server environment.
Consider modifying the parameters documented in Configuration Parameters that Affect Adapter Performance to maximize adapter performance in certain scenarios.
Follow the guidelines in How BizTalk Server Processes Large Messages to optimize Messaging Engine performance when processing Large Messages (more than 100 MB).
Create separate hosts and host instances for send adapters, receive adapters, and orchestrations. This will give each adapter a separate host instance to run in and will ensure that one adapter does not adversely affect another. Since host throttling settings are configurable at the host level, the separation of processing logic into different hosts will also permit you to configure throttling settings based upon the processing requirements of each host.
Typically a performance problem can be narrowed down to one of the following components of a BizTalk Server environment:
A receive adapter or the system that the adapter is receiving documents from. For example if documents are being received by the HTTP adapter at a suboptimal rate then the problem may be with the HTTP receive adapter or with the client that is posting to the HTTP adapter.
An orchestration service instance.
Performance of the Microsoft SQL server that houses the BizTalk Server databases.
A send adapter or the system that the adapter is sending documents to. For example if documents are being sent by the SQL adapter at a suboptimal rate then the problem may be with the SQL send adapter or with the computer running SQL Server that the SQL adapter is updating.
Use the following guidelines to help identify the components of the BizTalk Server environment that are performing poorly:
Capture any warnings or errors generated in the BizTalk Server or SQL Server Event Viewer.
Follow the steps in Identifying Performance Bottlenecks to help identify performance bottlenecks.
Once the poorly performing component has been identified, follow the appropriate guidelines to help resolve the issue:
Guidelines for resolving performance problems related to send and receive adapters
See Troubleshooting BizTalk Server Adapters for general information to troubleshoot problems with BizTalk Server adapters. This section contains general troubleshooting information including information about how to set up logging for certain adapters and information that can be used diagnose network problems, problems with MSDTC, problems with the registry, problems with the file system, and problems with IIS.
See the appropriate section of Troubleshooting BizTalk Server Dependencies for general information to troubleshoot problems with MSDTC, Certificates, Enterprise Single Sign-On, and SQL Server.
Guidelines for resolving performance problems related to orchestrations
Modify the appropriate sections of the BTSNTSvc.exe.config file documented in Orchestration Engine Configuration.
Guidelines for resolving performance problems related to SQL Server
SQL Server Profiler can be used to capture Transact-SQL statements that are sent to SQL Server and the SQL Server result sets from these statements. Since BizTalk Server is tightly integrated with SQL Server, the analysis of a SQL Server Profile trace can be a useful tool for analyzing problems that may occur in BizTalk Server when reading from and writing to SQL Server databases. For information about how to use SQL Server Profiler see the SQL Server documentation.
The SQL Server 2008 SP1 Query Editor can be used to execute SQL statements directly against SQL Server databases. This functionality may be useful for querying the BizTalk Server databases or for updating the BizTalk Server databases in certain scenarios. For more information about Query Editor see the SQL Server 2008 SP1 documentation.
Review Troubleshooting SQL Server for additional information.