KB3197883 – POPRAVKA: Agent za snimke ne uspeva kada objavite UDF u programu SQL Server 2016 Distributor u transakcijskoj replikaciji

Primenjuje se na
SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use) SQL Server 2016 Service Pack 1

Simptomi

Pretpostavimo da imate podešavanje u kome Microsoft SQL Server 2016 deluje kao Distributor, a SQL Server 2014 ili SQL Server 2012 kao Publisher. Ako u ovoj instalaciji napravite snimak, transakcijsku publikaciju ili publikaciju za objedinjavanje u sistemu SQL Server 2012 ili SQL Server 2014 Publisher sa korisnički definisanom funkcijom (UDF) kao člankom, agent za snimke ne uspeva tokom izvršavanja skripti sa UDF-om i dobijate poruku o grešci koja podseća na sledeću:

Napomena

Nije uspela skripta za UserDefinedFunction "schema.functionname"

Sledeća poruka o grešci se vidi iz istorije zadatka agenta za snimke:

Napomena

<DateTime> [5%] Agent za replikaciju je naišao na izuzetak
<DateTime> Source: Unknown
<DateTime> Tip izuzetka: Microsoft.SqlServer.Management.Smo.FailedOperationException
<DateTime> Exception message: Skripta nije uspela za UserDefinedFunction "schema.functionname"
<DateTime> Kôd poruke: Nije primenljiv

Uzrok

Do ovog problema dolazi zato što agent za snimke koristi SMO Miscrosft.SqlServer.Smo.dll za izvršavanje skripti za članke. SQL Server 2016 dodaje novo svojstvo SMO-a, IsNativelyCompiled for In-Memory functions/stored procedure. Ovo svojstvo nije navedeno u sistemu SQL Server čija je verzija starija od verzije SQL Server 2016. Kada pokrenete agent za snimke u programu Distributor za SQL Server 2016, on koristi Microsoft.SqlServer.Smo.dll SQL Server 2016, ali on pokušava da proveri da li postoji svojstvo "IsNativelyCompiled" u programu SQL Server 2012 ili 2014 Publisher i ne uspeva uz gorenavedenu grešku.

Rešenje

Ovaj problem je rešen u sledećim kumulativnim ispravkama za SQL Server:

Kumulativna ispravka 2 za SQL Server 2016 SP1

Kumulativna ispravka 4 za SQL Server 2016

Osnovni podaci o kumulativnim ispravkama za SQL Server

Svaka nova kumulativna ispravka za SQL Server sadrži sve hitne ispravke i sve bezbednosne ispravke koje su uključene u prethodnu kumulativnu ispravku. Pogledajte najnovije kumulativne ispravke za SQL Server:

Najnovija kumulativna ispravka za SQL Server 2016

Privremeno rešenje

Da biste zaobišli ovaj problem, ručno kreirajte korisnički definisane funkcije (UDF-ove) na pretplatniku.

Status

Microsoft je potvrdio da je ovo problem u Microsoft proizvodima koji su navedeni u odeljku „Odnosi se na“.

Reference

Saznajte više o terminologiji koju Microsoft koristi za opisivanje softverskih ispravki.