KB3014867 - LABOJUMS: "Attālās sacietēšanas kļūme" izņēmumu nevar notvert, un, izmantojot SQL Server 2014, var rasties potenciāls datu zudums

Attiecas uz
SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use)

Pazīmes

Pieņemsim, ka iespējojat AlwaysOn pieejamības grupas Microsoft SQL Server 2014 instancē. Pieejamības grupas kļūmjpārlēce tiek veikta, kamēr primārajā dublikātā ir aktīvas transakcijas. Pēc tam tiek parādīts šāds 3303 brīdinājuma ziņojums:

Piezīme

Transakcijas '%.*ls' (ID 0x%016I64x %ls) attālā sacietēšana, kas sākta ar %S_DATE datu bāzē '%ls' pie LSN %S_LSN neizdevās.

Šādā gadījumā tālāk norādītie datu draiveri vai nodrošinātāji nevar uztvert "attālās pastiprināšanas kļūmes" izņēmumu:

  • Microsoft JDBC draiveris darbam ar SQL Server 4.0
  • OLE DB draiveris darbam ar SQL Server
  • SQL Server Native klients OLE DB

Tāpēc klienta lietojumprogramma, kas izmanto šos draiverus vai pakalpojumu sniedzējus, nezina, ka darījums ir "apšaubāms". "Šaubu" transakcija nozīmē, ka tā varēja būt sekmīgi izpildīta un nostiprināta diskā, vai arī SQL Server to pārtrauc un atritina. Ja šis "šaubu" darījums tiek atcelts, šie draiveri vai pakalpojumu sniedzēji joprojām var uzskatīt darījumu par veiksmīgi izpildītu, jo nevar fiksēt izņēmumu. Tas var izraisīt lietojumprogrammas datu nekonsekvences problēmu.

Piezīme Tālāk norādītie savienojuma nodrošinātāji var tvert "attālās pastiprināšanas kļūmes" izņēmumu "šaubu" transakcijām:

  • Microsoft ODBC draiveris darbam ar SQL Server
  • SQL Server Native Client (ODBC)

      

Risinājums

Šī problēma pirmo reizi tika novērsta nākamajā SQL Server kumulatīvajā atjauninājumā.

SQL Server 2014 5. kumulatīvais atjauninājums /en-us/help/3011055

Par SQL Server kumulatīvajiem atjauninājumiem

Katrā jaunajā SQL Server kumulatīvajā atjauninājumā ir visi labojumfaili un visi drošības labojumi, kas bija iekļauti iepriekšējā kumulatīvajā atjauninājumā. Skatiet jaunākos SQL Server kumulatīvos atjauninājumus:

      

Informācija par labojumfailuŠis labojumfails ievieš jaunu izsekošanas karodziņu 3923. Izsekošanas karodziņš ļaus SQL Server izmest izņēmumu lietojumprogrammai, kad tiek parādīts brīdinājuma ziņojums 3303.

Pēc labojumfaila lietošanas ir jāiespējo šis izsekošanas karodziņš, lai novērstu šo problēmu. Izmantojot labojumfailu un izsekošanas karodziņu, programmai ir arī jāievieš validācijas kodi, lai pārbaudītu, vai transakcija ir atritināta vai izpildīta pēc izņēmuma tveršanas.

 Atbalstīts labojumfails ir pieejams no Microsoft. Tomēr šis labojumfails ir paredzēts, lai novērstu tikai šajā rakstā aprakstīto problēmu. Lietojiet šo labojumfailu tikai sistēmām, kurās ir saskārusies ar šo konkrēto problēmu.

Ja labojumfails ir pieejams lejupielādei, šī zināšanu bāzes raksta augšdaļā ir sadaļa "Labojumfaila lejupielāde ir pieejama". Ja šī sadaļa netiek parādīta, iesniedziet pieprasījumu Microsoft klientu apkalpošanas un atbalsta dienestam, lai iegūtu labojumfailu.

Piezīme. Ja rodas papildu problēmas vai nepieciešama problēmu novēršana, iespējams, jums būs jāizveido atsevišķs pakalpojuma pieprasījums. Parasti atbalsta izmaksas attiecas uz jautājumiem par papildu atbalstu un problēmām, kas neskar šo konkrēto labojumfailu. Lai skatītu pilnu Microsoft klientu apkalpošanas un atbalsta tālruņa numuru sarakstu vai izveidotu atsevišķu pakalpojuma pieprasījumu, apmeklējiet šo Microsoft vietni:

/contactus/?ws=support Piezīme Veidlapā "Pieejama labojumfailu lejupielāde" tiek parādītas valodas, kurām labojumfails ir pieejams. Ja neredzat savu valodu, labojumfails šai valodai nav pieejams.

Restartēšanas prasībaPēc šī labojumfaila lietošanas nav jārestartē dators.

Statuss

Microsoft apstiprināja, ka šī ir problēma Microsoft produktos, kas norādīti sadaļā "attiecas uz".