NLB can't track TCP connections because it was unable to open the TCP connection callback object

Microsoft.Windows.NetworkLoadBalancing.6.2.NLB.cant.track.TCP.connections.because.it.was.unable.to.open.the.TCP.connection.callback.object (Rule)

Knowledge Base article:

Summary

The Network Load Balancing (NLB) driver on the host tracks connections to maintain client/network affinity configured on the NLB cluster. If the driver is not functioning properly, NLB may not be able to track TCP connections or may experience load distribution errors.

Resolutions

Disable and enable NLB network adapters

If Network Load Balancing (NLB) is unable to open a TCP connection callback object, then NLB cannot track TCP connections. Although NLB will still accept new connections, it will not track the connection state, which may cause the affinity that is maintained by the driver during the connection to break. You should disable and re-enable the network adapter before attempting to bind NLB to the adapter again.

To disable and re-enable all network adapters:

Element properties:

TargetMicrosoft.Windows.NetworkLoadBalancing.6.2.ServerRole
CategoryAlert
EnabledTrue
Alert GenerateFalse
RemotableTrue

Member Modules:

ID Module Type TypeId RunAs 
DS DataSource Microsoft.Windows.NetworkLoadBalancing.EventProvider Default
WA WriteAction Microsoft.Windows.NetworkLoadBalancing.6.2.GenerateAlert.SuppressByDescription Default
WriteToDB WriteAction Microsoft.Windows.NetworkLoadBalancing.6.2.CollectEvent Default

Source Code:

<Rule ID="Microsoft.Windows.NetworkLoadBalancing.6.2.NLB.cant.track.TCP.connections.because.it.was.unable.to.open.the.TCP.connection.callback.object" Enabled="onEssentialMonitoring" Target="Microsoft.Windows.NetworkLoadBalancing.6.2.ServerRole" ConfirmDelivery="true" Remotable="true" Priority="Normal" DiscardLevel="100">
<Category>Alert</Category>
<DataSources>
<DataSource ID="DS" TypeID="NLBLibrary!Microsoft.Windows.NetworkLoadBalancing.EventProvider">
<Criteria>
<SimpleExpression>
<ValueExpression>
<XPathQuery>EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value>81</Value>
</ValueExpression>
</SimpleExpression>
</Criteria>
</DataSource>
</DataSources>
<WriteActions>
<WriteAction ID="WA" TypeID="Microsoft.Windows.NetworkLoadBalancing.6.2.GenerateAlert.SuppressByDescription">
<Priority>1</Priority>
<Severity>2</Severity>
<AlertMessageId>$MPElement[Name="Microsoft.Windows.NetworkLoadBalancing.6.2.NLB.cant.track.TCP.connections.because.it.was.unable.to.open.the.TCP.connection.callback.object.AlertMessage"]$</AlertMessageId>
<EnableAlert>true</EnableAlert>
</WriteAction>
<WriteAction ID="WriteToDB" TypeID="Microsoft.Windows.NetworkLoadBalancing.6.2.CollectEvent">
<CollectEvent>false</CollectEvent>
</WriteAction>
</WriteActions>
</Rule>