I was recently asked to diagnose an issue with timeouts in BizTalk connecting to an API. So I ran BizTalk Health Monitor on the environment. There were two items that jumped out at me.
Max Degree of Parallelism
First that a DBA had twiddled with a setting that should not be changed for a BizTalk SQL Instance.
Critical Warnings: 1
Item Caption | Item Value | URLs | Rule ID |
BizTalk Databases (General) | |||
Max Degree of Parallelism for masterDB on DBSERVERNAME | 4 (NOT SUPPORTED for MsgBox Dbs) | KB 917845 | 52 |
To fix this you have to do the following as per To configure the max degree of parallelism option
To configure the max degree of parallelism option
Using SQL Server Management Studio
- In Object Explorer, right-click a server and select Properties.
- Click the Advanced node.
- In the Max Degree of Parallelism box, select the maximum number of processors to use in parallel plan execution.
Using Transact-SQL
- Connect to the Database Engine.
- From the Standard bar, click New Query.
- Copy and paste the following example into the query window and click Execute. This example shows how to use sp_configure to configure the
max degree of parallelism
option to16
.
USE AdventureWorks2012 ;
GO
EXEC sp_configure 'show advanced options', 1;
GO
RECONFIGURE WITH OVERRIDE;
GO
EXEC sp_configure 'max degree of parallelism', 16;
GO
RECONFIGURE WITH OVERRIDE;
GO
We of course want to set it to 1.
Further reading on Max Degree of Parallelism
- SQL Server Settings That Should Not Be Changed
- Blocking, deadlock conditions, or other SQL Server issues when you connect to the BizTalkMsgBoxDb database in BizTalk Server
- Configure the max degree of parallelism Server Configuration Option
Maxconnections
Secondly, probably the root cause of the timeouts, BizTalk performs very poorly under load if it is only allowed the default two connections to web services.
Other Warnings: #
Item Caption | Item Value | URLs | Rule ID |
Tuning | |||
‘maxconnection’ property | Is not present in PRDCMSBIZ1: BTSNTSVC.EXE.CONFIG – You can configure the number of concurrent connections that the SOAP adapter opens for a particular destination server by adding “maxconnection” entry | SOAP Adapter Configuration and Tuning Parameters | 404 |
‘maxconnection’ property | Is not present in PRDCMSBIZ1: BTSNTSVC64.EXE.CONFIG – You can configure the number of concurrent connections that the SOAP adapter opens for a particular destination server by adding “maxconnection” entry | SOAP Adapter Configuration and Tuning Parameters | 404 |
‘maxconnection’ property | Is not present in PRDCMSBIZ2: BTSNTSVC.EXE.CONFIG – You can configure the number of concurrent connections that the SOAP adapter opens for a particular destination server by adding “maxconnection” entry | SOAP Adapter Configuration and Tuning Parameters | 404 |
‘maxconnection’ property | Is not present in PRDCMSBIZ2: BTSNTSVC64.EXE.CONFIG – You can configure the number of concurrent connections that the SOAP adapter opens for a particular destination server by adding “maxconnection” entry | SOAP Adapter Configuration and Tuning Parameters | 404 |
The link for SOAP Adapter Configuration and Tuning Parameters doesn’t exist anymore, but see my blog post Configuring maxconnection in BizTalk. It’s is a simple fix, and the throughput of your BizTalk server to web services will be markedly improved.