[Deprecated] Another log reader is replicating the database

Microsoft.SQLServer.2008.AnotherLogReaderIsReplicatingDatabaseRule (Rule)

Knowledge Base article:

Summary

Another log reader is replicating the database.

Causes

More than one current connection is trying to execute any of the following: sp_repldone, sp_replcmds, or sp_replshowcmds. The Log Reader Agent uses the stored procedures sp_repldone and sp_replcmds to locate and update information about replicated transactions in a published database. The stored procedure sp_replshowcmds is used to troubleshoot certain issues with transactional replication.

This error is raised in the following circumstances:

In a situation where it appears there are multiple agents, it is possible that one of them is the result of an orphaned process.

Note that in a situation where it appears there are multiple agents, one of them may be the result of some sort of orphaned process that doesn't show up as an extra job or agent in Management Studio.

Resolutions

The following steps can help you to troubleshoot the problem. If any step allows the Log Reader Agent to start without errors, there is no need to complete the remaining steps.

External

SQL Server Event ID 18752

Overrideable Parameters

Name

Description

Default Value

Enabled

Enables or disables the workflow.

Yes

Priority

Defines Alert Priority.

2

Severity

Defines Alert Severity.

2

Element properties:

TargetMicrosoft.SQLServer.2008.DBEngine
CategoryEventCollection
EnabledTrue
Alert GenerateTrue
Alert SeverityError
Alert PriorityHigh
RemotableTrue
Alert Message
Another log reader is replicating the database
{0}

Member Modules:

ID Module Type TypeId RunAs 
DS DataSource Microsoft.SQLServer.2008.EventProvider Default
GenerateAlert WriteAction System.Health.GenerateAlert Default

Source Code:

<Rule ID="Microsoft.SQLServer.2008.AnotherLogReaderIsReplicatingDatabaseRule" Target="SQL2008Core!Microsoft.SQLServer.2008.DBEngine" Enabled="true" ConfirmDelivery="true">
<Category>EventCollection</Category>
<DataSources>
<DataSource ID="DS" TypeID="Microsoft.SQLServer.2008.EventProvider">
<ComputerName>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ComputerName>
<PublisherName>$Target/Property[Type="SQL!Microsoft.SQLServer.DBEngine"]/ServiceName$</PublisherName>
<EventNumber>18752</EventNumber>
</DataSource>
</DataSources>
<WriteActions>
<WriteAction ID="GenerateAlert" TypeID="SystemHealth!System.Health.GenerateAlert">
<Priority>2</Priority>
<Severity>2</Severity>
<AlertMessageId>$MPElement[Name="Microsoft.SQLServer.2008.AnotherLogReaderIsReplicatingDatabaseRule.AlertMessage"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>Event ID: $Data/EventDisplayNumber$. $Data/EventDescription$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue>$Data/LoggingComputer$</SuppressionValue>
<SuppressionValue>$Data/PublisherName$</SuppressionValue>
<SuppressionValue>$Data/EventDisplayNumber$</SuppressionValue>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>