Düzeltme: birleştirme yayını birçok makaleleri ve SQL Server Compact 3.5 içinde kısıtlamaları içeriyorsa, "belirtilen değer, bir sütun veya tablonun bütünlük kısıtlamalarını ihlal etti" hatası

Template: Generic Hotfix

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

Belirtiler

Aşağıdaki senaryoyu inceleyin:

  • Microsoft SQL Server Compact 3.5 bir bilgisayara yükleyin.

  • SQL Server Compact 3.5 içinde bir abone yarat

  • Yayımcı abone ile eşitlenmesine birçok satır için bir veritabanı birleştirme yayından indirin. Satırları birçok makaleleri ve sınırlamaları içerir.

Bu senaryoda, aşağıdakine benzer bir hata iletisi SQL Server hata günlüğüne kaydedilir:

System.Data.SqlServerCe.SqlCeExceptionNative hata = 0, HRESULT =-2147217873, hata iletisi: Belirtilen değer, bir sütun veya tablonun bütünlük kısıtlamalarını ihlal etti.

NotHem 32-bit işletim sistemi hem de 64-bit işletim sistemi, bu sorun oluşur.

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.


Neden

Geçersiz değişim kimliği kullanıldığından, bu sorun oluşur. Yüklemek için istenen sayıda satır bekleme durumunda olduğunda, istemci aracı Compact SQL geçersiz exchange kimliği kullanan bir yeniden deneme yöntemini çağırır. Bu nedenle, "Belirtiler" bölümünde anlatılan sorun oluşur.

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.

Çözüm

Bu sorunu gideren bir düzeltme, toplu güncelleştirme paketi 5 SQL Server Compact 3.5 Service Pack 2 için (SP2) eklenmiştir. SQL Server Compact 3.5 SP2 için Toplu Güncelleştirme Paketi 5'i elde etme hakkında daha fazla bilgi için Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:

2553608 SQL Server Compact 3.5 Service Pack 2 için toplu güncelleştirme 5

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

Daha fazla yardıma mı ihtiyacınız var?

Yeteneklerinizi geliştirin
Eğitimleri keşfedin
Yeni özellikleri ilk olarak siz edinin
Microsoft Insider 'a katılın

Bu bilgi yardımcı oldu mu?

Geri bildiriminiz için teşekkür ederiz!

Geri bildiriminiz için teşekkürler! Office destek temsilcilerimizden biriyle görüşmeniz yararlı olabilir.

×