SQL Server Service Broker/資料庫鏡像傳輸連線端點發生錯誤

Microsoft.SQLServer.2012.An_error_occurred_in_a_SQL_Server_Service_Broker_Database_Mirroring_transport_connection_endpoint_1_5_Rule (Rule)

Knowledge Base article:

摘要

SQL Server 使用 Service Broker 及資料庫鏡像端點做為 SQL Server 執行個體的外部通訊。

端點是一種 SQL Server 物件,用來表示 SQL Server 透過網路通訊的功能。這些端點可設定使 SQL Server 透過網路傳送並接收 SQL Server Service Broker 及資料庫鏡像訊息。

原因

當連線端點發生錯誤時會產生此訊息。此錯誤在 Windows 應用程式記錄檔中記錄為 MSSQLSERVER 事件識別碼 9642。Windows 記錄檔中會記錄近方的端點角色、遠方的端點位址、初始錯誤,以及交談狀態。記錄為 MSSQLSERVER 事件識別碼 9642 的錯誤是由遠方端點中的初始錯誤所引起。

其狀態定義詳如《SQL Server 2012 線上叢書》中的<sys.conversation_endpoints (Transact-SQL)>。

解決方式

從應用程式記錄檔中找到此錯誤,並解決導致錯誤的問題。

外部資源

請參閱《SQL Server 2012 線上叢書》中的<疑難排解路由和訊息傳遞>。

Element properties:

TargetMicrosoft.SQLServer.2012.DBEngine
CategoryEventCollection
EnabledTrue
Event_ID9642
Event Source$Target/Property[Type="SQL!Microsoft.SQLServer.DBEngine"]/ServiceName$
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
RemotableTrue
Alert Message
SQL Server Service Broker/資料庫鏡像傳輸連線端點發生錯誤
{0}
Event LogApplication
CommentMom2012ID='{BB37750F-51FB-4B98-BA14-E1765CE2C790}';MOM2012GroupID={467ECC75-C5DA-42BD-955C-A73BBB51AF74}

Member Modules:

ID Module Type TypeId RunAs 
_F6DA1507_12AF_11D3_AB21_00A0C98620CE_ DataSource Microsoft.Windows.EventProvider Microsoft.SQLServer.SQLDefaultAccount
GenerateAlert WriteAction System.Health.GenerateAlert Default

Source Code:

<Rule ID="Microsoft.SQLServer.2012.An_error_occurred_in_a_SQL_Server_Service_Broker_Database_Mirroring_transport_connection_endpoint_1_5_Rule" Target="SQL2012Core!Microsoft.SQLServer.2012.DBEngine" Enabled="true" ConfirmDelivery="true" Remotable="true" Comment="Mom2012ID='{BB37750F-51FB-4B98-BA14-E1765CE2C790}';MOM2012GroupID={467ECC75-C5DA-42BD-955C-A73BBB51AF74}">
<Category>EventCollection</Category>
<DataSources>
<DataSource ID="_F6DA1507_12AF_11D3_AB21_00A0C98620CE_" Comment="{F6DA1507-12AF-11D3-AB21-00A0C98620CE}" TypeID="Windows!Microsoft.Windows.EventProvider" RunAs="SQL!Microsoft.SQLServer.SQLDefaultAccount">
<ComputerName>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ComputerName>
<LogName>Application</LogName>
<Expression>
<And>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery>EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value>9642</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery>PublisherName</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value>$Target/Property[Type="SQL!Microsoft.SQLServer.DBEngine"]/ServiceName$</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</And>
</Expression>
</DataSource>
</DataSources>
<WriteActions>
<WriteAction ID="GenerateAlert" TypeID="SystemHealth!System.Health.GenerateAlert">
<Priority>1</Priority>
<Severity>2</Severity>
<AlertMessageId>$MPElement[Name="Microsoft.SQLServer.2012.An_error_occurred_in_a_SQL_Server_Service_Broker_Database_Mirroring_transport_connection_endpoint_1_5_Rule.AlertMessage"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>$Data/EventDescription$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue/>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>