KB2648158 – RJEŠENJE: poruka o pogrešci "Postupak se ne može izvršiti" kada postavite vrijednost koja nije nula u parametru MaxCmdsInTran agenta čitača zapisnika u sustavu SQL Server 2008 R2 ili SQL Server 2012

Primjenjuje se na
SQL Server 2008 R2 Service Pack 1

Microsoft distribuira popravke servisnog paketa Microsoft SQL Server 2008 R2 Service Pack 1 (SP1) ili Microsoft SQL Server 2012 u jednoj datoteci koja se može preuzeti. Budući da su popravci kumulativni, svako novo izdanje sadrži sve hitne popravke i sigurnosna ažuriranja obuhvaćena prethodnim izdanjem ažuriranja servisnog paketa 1 (SP1) za SQL Server 2008 R2 Service Pack 1 (SP1) ili Microsoft SQL Server 2012.

Simptomi

Razmotrite sljedeći scenarij:

  • U sustavu Microsoft SQL Server 2008 R2 ili Microsoft SQL Server 2012 stvorili ste najmanje dvije publikacije o transakcijskoj replicaciji temeljene na jednoj bazi podataka.
  • Svaka publikacija sadrži najmanje jedan članak. Članci se ne preklapaju, a svaki članak pripada samo jednoj publikaciji.
  • Svojstvo @sync\_method publikacija postavite na Istodobno.
  • Svojstvo @immediate\_sync publikacija postavljate na True.
  • Parametar MaxCmdsInTran agenta čitača zapisnika postavite na vrijednost koja nije nula.
  • Jedna od publikacija prima više umetaka u jednoj transakciji.
  • Kada izvršite transakciju, agent čitača zapisnika počinje obrađivati i dijeliti transakciju u skladu s parametrom MaxCmdsInTran.
  • Agent za snimke stanja u drugoj publikaciji započinje prije nego što agent čitača zapisnika dovrši zadatak.

U tom scenariju agent čitača zapisnika ne funkcionira i prikazuje se sljedeća poruka o pogrešci:

Napomena

Proces se ne može izvršiti "sp_MSadd_replcmds" na "poslužitelju\instanci".
(Izvor: MSSQLServer, broj pogreške: 1007)
Nije moguće umetnuti duplicirani redak ključa u objekt 'dbo. MSrepl_commands' s jedinstvenim indeksom 'ucMSrepl_commands'.
(Izvor: MSSQLServer, broj pogreške: 1007)

Rješenje

Kumulativni podaci o ažuriranju

SQL Server 2012

Rješenje tog problema prvi je put objavljeno u kumulativnom ažuriranju 1 za SQL Server 2012. Dodatne informacije o tom paketu kumulativnog ažuriranja potražite u članku iz Microsoftove baze znanja pod brojem

2679368 Paket kumulativnog ažuriranja 1 za SQL Server 2012Napomena Budući da su međuverzije kumulativne, svako novo izdanje popravka sadrži sve hitne popravke i sigurnosne popravke obuhvaćene prethodnim izdanjem popravka za SQL Server 2012. Microsoft preporučuje da razmislite o primjeni najnovijeg izdanja popravka koji sadrži taj hitni popravak. Za više informacija kliknite sljedeći broj članka da biste prikazali članak u Microsoftovoj bazi znanja:

2692828 međuverzije SQL Server 2012 koje su izdane nakon objave SQL Server 2012 Na instalaciju sustava SQL Server 2012 morate primijeniti hitni popravak SQL Server 2012.

Paket kumulativnog ažuriranja 4 za SQL Server 2008 R2 SP1

Rješenje tog problema prvi je put izdano u kumulativnom ažuriranju 4. Dodatne informacije o nabavi paketa kumulativnog ažuriranja za SQL Server 2008 R2 SP1 potražite u članku iz Microsoftove baze znanja pod sljedećim brojem:

2633146 Paket kumulativnog ažuriranja 4 za SQL Server 2008 R2 SP1Napomena Budući da su međuverzije kumulativne, svako novo izdanje popravka sadrži sve hitne popravke i sigurnosne popravke obuhvaćene prethodnim izdanjem popravka za SQL Server 2008 R2 SP1. Preporučujemo da razmislite o primjeni najnovijeg izdanja popravka koji sadrži taj hitni popravak. Za više informacija kliknite sljedeći broj članka da biste prikazali članak u Microsoftovoj bazi znanja:

2567616 međuverzije SQL Server 2008 R2 izdane nakon izdanja sustava SQL Server 2008 R2 SP1

Zaobilazno rješenje

Problem se zaobilazno može riješiti na sljedeće načine:

  • Nemojte svojstvo publikacija postavljati @sync\_method na "istodobne" i nemojte svojstvo @immediate\_sync publikacija postavljati na "true".
  • Postavite vrijednost parametra MaxCmdsInTran na nulu.

Status

Microsoft je potvrdio da je to problem u Microsoftovim proizvodima koji su navedeni u odjeljku „Odnosi se na“.