Symptomen
De sp_replmonitorsubscriptionpendingcmds opgeslagen procedure is niet compatibel met P2P-replicatie (peer-to-peer). Het retourneert een onjuist aantal opdrachten in behandeling. Nadat u deze oplossing hebt toegepast, is sp_replmonitorsubscriptionpendingcmds compatibel met P2P-replicatie.
Opmerking Het tabblad Niet-gedistribueerde opdrachten van een replicatiemonitor roept sp_replmonitorsubscriptionpendingcmds achter de schermen aan.
Oplossing
Informatie over cumulatieve updates
Dit probleem is opgelost in de volgende cumulatieve updates voor SQL Server:
Opmerking Nadat u deze cumulatieve update hebt toegepast, kan sp_replmonitorsubscriptionpendingcmds nog steeds een onjuist aantal in behandeling zijnde opdrachten voor P2P-replicatie rapporteren als de MSrepl_originators tabel verouderde vermeldingen bevat.
Als de MSrepl_originators tabel verouderde vermeldingen bevat, genereert het uitvoeren van sp_replmonitorsubscriptionpendingcmds het volgende waarschuwingsbericht in het SQL Server foutenlogboek:
Waarschuwing: kan geen databaseversie ophalen voor de abonnementsdatabase '<database_name>'. De sp_replmonitorsubscriptionpendingcmdskan het onjuiste aantal in behandeling zijnde opdrachten voor P2P-replicatie rapporteren.
U kunt dit probleem oplossen door de verouderde vermeldingen uit MSrepl_originators te verwijderen of de juiste 'dbversion' van een abonnementsdatabase door te geven als een subdb_version argument wanneer u sp_replmonitorsubscriptionpendingcmds uitvoert.
Tips: U kunt een van de volgende methoden selecteren om de dbversion van een abonnementsdatabase te vinden:
-
Voer de volgende query uit op een distributiedatabase: select dbversion from MSrepl_originators
where publisher_database_id = <Publisher_Database_ID>
and srvname = <Subscriber_Server>
and dbname = <Subscriber_Database>
Opmerking U moet de juiste waarden vervangen door <Publisher_Database_ID> , <Subscriber_Server> en <Subscriber_Database>. -
Voer de volgende query uit op een abonnementsdatabase: declare @current_version int , @currentGuid uniqueidentifier
select @currentGuid = recovery_fork_guid
from sys.database_recovery_status
where database_id = db_id()
select @current_version = substring(convert(binary(16), isnull(@currentGuid, 0x0)),1,6)
print @current_version
Elke nieuwe cumulatieve update voor SQL Server bevat alle hotfixes en beveiligingspatches uit de vorige build. U wordt aangeraden de meest recente build te installeren voor uw versie van SQL Server:
Status
Microsoft heeft bevestigd dat dit probleem zich kan voordoen in de Microsoft-producten die worden vermeld in de sectie Van toepassing op.
Verwijzingen
Meer informatie over de terminologie die Microsoft gebruikt om software-updates te beschrijven.