FIX: "un valore specificato ha violato i vincoli di integrità di una tabella o colonna" errore se la pubblicazione di stampa unione contiene numerosi articoli e i vincoli in SQL Server Compact 3.5

Template: Generic Hotfix

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

Sintomi

Considerare lo scenario descritto di seguito:

  • Si installa Microsoft SQL Server Compact 3.5 in un computer.

  • Per creare un server di sottoscrizione in SQL Server Compact 3.5.

  • Scaricare numero di righe da una pubblicazione di stampa unione a un database mentre sincronizzata con il server di sottoscrizione. Le righe contengono numerosi articoli e vincoli.

In questo scenario, nel log degli errori di SQL Server viene registrato un messaggio di errore analogo al seguente:

Errore System.Data.SqlServerCe.SqlCeExceptionNative = 0, HRESULT =-2147217873, messaggio di errore: un valore specificato ha violato i vincoli di integrità di una colonna o tabella.

Nota Questo problema si verifica nel sistema operativo a 32 bit e 64 bit del sistema operativo.

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.


Causa

Questo problema si verifica perché viene utilizzato un ID di exchange non valido. Quando il numero di righe per il download è in sospeso, l'agente Client SQL Compact chiama un metodo di tentativi che utilizza un ID di exchange non valido. Pertanto, si verifica il problema menzionato nella sezione "Sintomi".

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.

Risoluzione

L'hotfix per risolvere questo problema è incluso nel pacchetto di aggiornamento cumulativo 5 per SQL Server Compact 3.5 Service Pack 2 (SP2). Per ulteriori informazioni su come ottenere il pacchetto di aggiornamento cumulativo 5 per SQL Server Compact 3.5 SP2, fare clic sul numero riportato di seguito per visualizzare l'articolo della Microsoft Knowledge Base riportato di seguito:

2553608 Aggiornamento cumulativo 5 per SQL Server Compact 3.5 Service Pack 2

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

Serve aiuto?

Amplia le tue competenze
Esplora i corsi di formazione
Ottieni in anticipo le nuove caratteristiche
Partecipa a Microsoft Insider

Queste informazioni sono risultate utili?

Grazie per il feedback!

Grazie per il tuo feedback! Potrebbe essere utile metterti in contatto con uno dei nostri operatori del supporto di Office.

×