Linux 上的 MSSQL: Service Broker/数据库镜像传输操作期间,SNI 调用失败

Microsoft.SQLServer.Linux.EventRule.DBEngine.An_SNI_call_failed_during_a_Service_Broker_Database_Mirroring_transport_operation_1_5_Rule (Rule)

当 SNI 调用在 Service Broker/数据库镜像传输操作期间失败时,规则将触发警报。注意: 默认情况下,此规则为禁用状态。请根据需要使用替代进行启用。

Knowledge Base article:

摘要

SQL Server Service Broker 或数据库镜像尝试通过 SQL 网络接口(SNI)访问传输层。SNI 返回错误。传输无法继续。

Service Broker 或数据库镜像调用了 SNI,且 SNI 返回错误。SQL Server 传输无法继续。此错误以 MSSQLSERVER 事件 ID 8471 写入 Linux 应用程序日志中。

原因

这是由于网络连接不正确或物理网络失败引起的。

解决方法

检查系统错误日志。查找其他与网络问题相关的错误。

验证是否已正确配置网络。

验证服务器是否已连接到物理网络,以及物理网络是否正常运行。

可替代参数

名称

说明

默认值

启用

启用或禁用工作流。

间隔(秒)

运行工作流的重复间隔时间(秒)。

300

优先级

定义警报优先级。

1

严重性

定义警报严重性。

2

同步时间

同步时间

 

超时(秒)

指定工作流在关闭之前允许运行的时间,并标记为失败。

200

数据库连接超时(秒)

如果在指定期间无法访问数据库,工作流将失败并注册一个事件。

15

Element properties:

TargetMicrosoft.SQLServer.Linux.DBEngine
CategoryEventCollection
EnabledFalse
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
RemotableTrue
Alert Message
Linux 上的 MSSQL: Service Broker/数据库镜像传输操作期间,SNI 调用失败
{0}
CommentMom2017ID='{83D194E9-BD2D-4A4B-B818-4820F94C9A54}';MOM2017GroupID={467ECC75-C5DA-42BD-955C-A73BBB51AF74}

Member Modules:

ID Module Type TypeId RunAs 
_F6DA1507_12AF_11D3_AB21_00A0C98620CE_ DataSource Microsoft.SQLServer.Linux.DataSource.EventCollectionFiltered Default
GenerateAlert WriteAction System.Health.GenerateAlert Default

Source Code:

<Rule ID="Microsoft.SQLServer.Linux.EventRule.DBEngine.An_SNI_call_failed_during_a_Service_Broker_Database_Mirroring_transport_operation_1_5_Rule" Target="SqlDiscL!Microsoft.SQLServer.Linux.DBEngine" Enabled="false" ConfirmDelivery="true" Remotable="true" Comment="Mom2017ID='{83D194E9-BD2D-4A4B-B818-4820F94C9A54}';MOM2017GroupID={467ECC75-C5DA-42BD-955C-A73BBB51AF74}">
<Category>EventCollection</Category>
<DataSources>
<DataSource ID="_F6DA1507_12AF_11D3_AB21_00A0C98620CE_" Comment="{F6DA1507-12AF-11D3-AB21-00A0C98620CE}" TypeID="Microsoft.SQLServer.Linux.DataSource.EventCollectionFiltered">
<MachineName>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/MachineName$</MachineName>
<NetbiosComputerName>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/NetbiosComputerName$</NetbiosComputerName>
<InstanceName>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/InstanceName$</InstanceName>
<ConnectionString>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/ConnectionString$</ConnectionString>
<InstanceVersion>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/Version$</InstanceVersion>
<InstanceEdition>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/Edition$</InstanceEdition>
<SqlTimeoutSeconds>15</SqlTimeoutSeconds>
<TimeoutSeconds>200</TimeoutSeconds>
<IntervalSeconds>300</IntervalSeconds>
<SyncTime/>
<EventDisplayNumber>8471</EventDisplayNumber>
</DataSource>
</DataSources>
<WriteActions>
<WriteAction ID="GenerateAlert" TypeID="Health!System.Health.GenerateAlert">
<Priority>1</Priority>
<Severity>2</Severity>
<AlertMessageId>$MPElement[Name="Microsoft.SQLServer.Linux.EventRule.DBEngine.An_SNI_call_failed_during_a_Service_Broker_Database_Mirroring_transport_operation_1_5_Rule.AlertMessage"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>Event ID: $Data/Property[@Name='EventID']$. $Data/Property[@Name='Message']$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue/>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>