We have deadlock reports that all victims are Biztalk processes as follows:
- bts_ManageMessageRefCountLog
- MsgBoxPerfCounters_GetTrackingDataSize
The first one is executed by MessageBox_Message_ManageRefCountLog_BizTalkMsgBoxDb and I can see this job running infinitely without finishing. The second one is executed by each host instance to refresh data for performance counters.
I intend to increase "Message box performance counter sampling interval" to mitigate the issue as we don't use the counters to track our system. Still, I'm not sure if it affects other Biztalk processes. Are the performance counters used in any Biztalk management or messaging processes?
Besides, this issue still happens even if we set the maximum value for the property (12 hours) and we don't see any error event generated for this so would it be safe to ignore it regarding below?
https://docs.microsoft.com/en-us/biztalk/technical-guides/checklist-maintaining-and-troubleshooting-biztalk-server-databases "The BizTalkMsgBoxDB database is a high-volume and high-transaction Online Transaction Processing (OLTP) database. With such databases, some deadlocking is expected and this deadlocking is handled internally by the BizTalk Server engine. When this behavior occurs, no errors are listed in the error logs. When you investigate a deadlock scenario, the deadlock that you are investigating in the output must be correlated with a deadlock error in the event logs."