NUSTATYTI: "nurodyta reikšmė pažeisti vientisumo apribojimus, stulpelį ar lentelę" klaida, jei laiškų suliejimo leidinį yra daug straipsnių ir apribojimus, SQL Server Compact 3.5

Template: Generic Hotfix

BUG #: 149290 (Content Maintenance)VSTS Bug #: 767547

Požymiai

Įsivaizduokite tokią situaciją:

  • Kompiuteryje įdiegiate "Microsoft" SQL Server Compact 3.5.

  • Galite sukurti SQL Server Compact 3.5 abonentas.

  • Galite atsisiųsti daug eilučių iš suliejimo leidinį prie duomenų bazės nors leidėjo sinchronizuoja su abonentu. Eilutes, kuriose yra daug straipsnių ir apribojimai.

Tokiu atveju SQL serverio klaidos žurnale užregistruojamas klaidos pranešimą, panašų į šį:

System.Data.SqlServerCe.SqlCeExceptionNative klaida = 0, HRESULT =-2147217873, parodomas klaidos pranešimas: nurodyta reikšmė pažeistos vientisumo apribojimus, stulpelį ar lentelę.

Pastaba. Ši problema kyla ir 32 bitų operacinę sistemą, ir 64 bitų operacinės sistemos.

This issue usually occurs when the following conditions are true:

  • The publisher synchronizes under a heavy workload.

  • The articles of rows are downloaded out of sequential order.


Priežastis

Ši problema kyla dėl to, kad naudojamas neteisingas exchange ID. Kai daug eilučių atsisiųsti yra laukimo būsenos, SQL Compact kliento agentu iškviečia kartoti metodas, kuris naudojamas neteisingas exchange identifikatorių. Todėl atsiranda problema, nurodyta skyriuje "Požymiai".

This issue occurs because the guidRetries value is not initialized to a GUID value.

Note The AddRetryMsg() method uses the guidRetries value to generate an exchange ID for a retry message.

When many articles and constraints exists, the AddRetryMsg() method may run multiple times. However, the guidRetries value is not initialize to a GUID value, and the guidRetries values are the same when the AddRetryMsg() method runs multiple times on a computer that is running a 32-bit operating system.

Therefore, SQL Compact Client Agent uses the same exchange ID to create all new requests, and an SSCE_M_RSCBWITHSAMEEXCHANGEID 29005 Server Agent error is generated. Additionally, you receive the following error message:

A replication session control block already exists. The IIS server was probably shut down during a synchronization process. Try synchronizing again.

Sprendimas

Karštųjų pataisų, kuris pašalins šią problemą yra įtrauktas į kaupiamųjų naujinimų paketas 5 SQL Server Compact 3.5 pakeitimų paketo 2 (SP2). Jei norite gauti daugiau informacijos apie tai, kaip gauti kaupiamųjų naujinimų paketas 5 SQL Server Compact 3.5 SP2, spustelėkite toliau straipsnio numerį ir peržiūrėkite straipsnį Microsoft žinių bazėje:

2553608 Kaupiamasis naujinimas 5 SQL Server Compact 3.5 Service Pack 2

Author: jannaw
Writer: v-yipli
Tech Reviewer: panarasi;rtandon;ambrishm;babuk;atisagar;jannaw
Editor: v-lynan

Reikia daugiau pagalbos?

Tobulinkite savo įgūdžius
Ieškoti mokymo
Pirmiausia gaukite naujų funkcijų
Prisijungti prie "Microsoft Insider"

Ar ši informacija buvo naudinga?

Dėkojame už jūsų atsiliepimus!

Dėkojame už jūsų atsiliepimą! Panašu, kad gali būti naudinga jus sujungti su vienu iš mūsų „Office“ palaikymo agentų.

×