FIX: Utenti di controllare il processo di modifica di compensazione nella replica di tipo merge

Il presente articolo è stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell’utente. Tuttavia, un articolo tradotto in modo automatico non è sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, più o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non è la sua. Microsoft non è responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell’utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.

Clicca qui per visualizzare la versione originale in inglese dell’articolo: 828637
Questo articolo è stato archiviato. L’articolo, quindi, viene offerto “così come è” e non verrà più aggiornato.
Sintomi
Quando si utilizza la replica di tipo merge, è possibile si l'agente di merge verifichi gli errori di sincronizzazione se una modifica di inserimento, modifica di un'aggiornamento o una modifica di eliminazione non può essere applicata in una replica di destinazione per diversi motivi, tra cui una violazione di chiave primaria in server di pubblicazione o in server di sottoscrizione. L'agente di merge invierà sempre una compensazione modifica alla replica di origine per annullare la modifica non riuscita. L'agente di merge viene eseguito il processo di modifica compensazione per assicurarsi che dati vengono gestiti in uno stato coerenza e convergent in tutte le repliche. Senza le modifiche di compensazione, i dati possono variare tra le repliche, se si verifica un errore, ad esempio una violazione di chiave primaria. Se i dati variano tra le repliche, si verifica non convergenza dei dati.

Prima di questo hotfix, si è verificato alcun modo per consentire agli utenti di controllare il processo modifica compensazione. Il processo di modifica di compensazione è stato gestito internamente dall'agente di merge. Poiché questo processo è stato gestito internamente dall'agente di merge, era difficile la risoluzione per questo motivo si sono verificati determinati conflitti. Inoltre, poiché la riga in conflitto è eliminata dal o annullata in tutte le repliche, i dati della riga viene rimosso dalla topologia intera. Per risolvere questi problemi, Microsoft ha aggiunto una nuova proprietà a livello di articolo per la replica che consente agli utenti di controllare il processo di modifica compensazione di tipo merge.
Risoluzione

Informazioni sul Service pack

Per risolvere il problema, ottenere il service pack più recente per Microsoft SQL Server 2000. Per ulteriori informazioni, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito riportato:
290211Come ottenere il service pack più recente per SQL Server 2000

Informazioni sull'hotfix

La versione inglese di questo aggiornamento rapido (hotfix) presenta gli attributi di file (o successivi) elencati nella tabella riportata di seguito. Date e ore per questi file sono indicati nella coordinated universal time (UTC). Quando si visualizzano le informazioni sul file, viene convertito in ora locale. Per calcolare la differenza tra ora UTC e l'ora locale, utilizzare la scheda fuso orario dello strumento Data e ora del Pannello di controllo.
   Date         Time   Version            Size    File name   ----------------------------------------------------------------------   31-May-2003  18:45  2000.80.818.0      78,400  Console.exe         25-Jun-2003  01:01  2000.80.818.0      33,340  Dbmslpcn.dll        25-Apr-2003  02:12                    786,432  Distmdl.ldf   25-Apr-2003  02:12                  2,359,296  Distmdl.mdf   30-Jan-2003  01:55                        180  Drop_repl_hotfix.sql   26-Aug-2003  20:16  2000.80.854.0     528,960  Dtspump.dll         23-Jun-2003  22:40  2000.80.837.0   1,557,052  Dtsui.dll           23-Jun-2003  22:40  2000.80.837.0     639,552  Dtswiz.dll          24-Apr-2003  02:51                    747,927  Instdist.sql   03-May-2003  01:56                      1,581  Inst_repl_hotfix.sql   08-Feb-2003  06:40  2000.80.765.0      90,692  Msgprox.dll         01-Apr-2003  02:07                      1,873  Odsole.sql   05-Apr-2003  01:46  2000.80.800.0      62,024  Odsole70.dll        07-May-2003  20:41  2000.80.819.0      25,144  Opends60.dll        02-Apr-2003  21:48  2000.80.796.0      57,904  Osql.exe            02-Apr-2003  23:15  2000.80.797.0     279,104  Pfutil80.dll        04-Aug-2003  18:17                    550,780  Procsyst.sql   22-May-2003  22:57                     19,195  Qfe469571.sql   06-Sep-2003  01:36                  1,090,932  Replmerg.sql   06-Sep-2003  07:18  2000.80.858.0     221,768  Replprov.dll        06-Sep-2003  07:18  2000.80.858.0     307,784  Replrec.dll         06-Sep-2003  00:00                  1,087,150  Replsys.sql   13-Aug-2003  16:28                    986,603  Repltran.sql   29-Jul-2003  20:13  2000.80.819.0     492,096  Semobj.dll          31-May-2003  18:27  2000.80.818.0     172,032  Semobj.rll   05-Aug-2003  21:06                    127,884  Sp3_serv_uni.sql   01-Jun-2003  01:01  2000.80.818.0   4,215,360  Sqldmo.dll          07-Apr-2003  17:44                     25,172  Sqldumper.exe       19-Mar-2003  18:20  2000.80.789.0      28,672  Sqlevn70.rll   02-Jul-2003  00:18  2000.80.834.0     180,736  Sqlmap70.dll        03-Sep-2003  02:56  2000.80.857.0     188,992  Sqlmmc.dll          02-Sep-2003  23:03  2000.80.857.0     479,232  Sqlmmc.rll   08-Feb-2003  06:40  2000.80.765.0      57,920  Sqlrepss.dll        06-Sep-2003  07:19  2000.80.858.0   7,598,161  Sqlservr.exe        25-Jul-2003  21:44  2000.80.845.0     590,396  Sqlsort.dll         08-Feb-2003  06:40  2000.80.765.0      45,644  Sqlvdi.dll          25-Jun-2003  01:01  2000.80.818.0      33,340  Ssmslpcn.dll        01-Jun-2003  01:01  2000.80.818.0      82,492  Ssnetlib.dll        01-Jun-2003  01:01  2000.80.818.0      25,148  Ssnmpn70.dll        01-Jun-2003  01:01  2000.80.818.0     158,240  Svrnetcn.dll        31-May-2003  18:59  2000.80.818.0      76,416  Svrnetcn.exe        30-Apr-2003  23:52  2000.80.816.0      45,132  Ums.dll             02-Jul-2003  00:19  2000.80.834.0      98,816  Xpweb70.dll      
Nota A causa delle dipendenze fra i file, la funzionalità che contiene i file o l'aggiornamento rapido (hotfix) più recente può contenere anche ulteriori file.
Status
Microsoft ha confermato che questo problema riguarda i prodotti sono elencati nella sezione "Si applica a" di questo articolo.Questo problema è stato innanzitutto corretto in SQL Server 2000 Service Pack 4.
Informazioni
Questo aggiornamento rapido (hotfix) aggiunge una nuova proprietà di articolo a livello compensate_for_errors per pubblicazioni di tipo merge. È possibile impostare questa proprietà su true o false. Il valore predefinito per questa proprietà è true. L'impostazione predefinita significa che replica di tipo merge continua a inviare le modifiche di compensazione come in tutte le versioni precedenti e i service pack. Quando questa proprietà è impostata su true e una modifica di inserimento, modifica di un'aggiornamento, o una modifica di eliminazione non può essere applicata in una replica di destinazione per vari motivi si (una violazione di chiave primaria verifica server di pubblicazione o server di sottoscrizione, ad esempio), l'agente di merge invia una modifica di compensazione alla replica di origine per annullare la modifica.

Quando la proprietà compensate_for_errors è impostata su false e una modifica non può essere applicata a una replica di destinazione, le azioni di compensazione non vengono rilasciate e la modifica rimane un conflitto fino a quando l'amministratore del database consente di risolvere la condizione di errore. L'agente di merge tenta di replicare la riga in ogni successiva sincronizzazione eseguito finché non viene risolto la condizione di errore.

Livello inferiore gli agenti di sottoscrizione, in particolare per i Sottoscrittori pull non dispongono di questo aggiornamento rapido installato, continuano a funzionare come se la proprietà compensate_for_errors fosse impostata su true, anche se è stato installato questo aggiornamento rapido (hotfix) nel server di pubblicazione e la proprietà compensate_for_errors è impostata su false nel server di pubblicazione. Di conseguenza, gli utenti consigliabile aggiornare tutti i sottoscrittori questo aggiornamento rapido (hotfix) se si desidera utilizzare la funzionalità è fornita dalla proprietà compensate_for_errors nuovo. Questo aggiornamento consente di garantire un funzionamento consistente nella topologia di.

Per SQL Server 2000 Windows CE Edition comportano conflitti di download di sottoscrittori, come in tutte le precedenti SQL Server rilascia, indipendentemente dall'impostazione della proprietà compensate_for_errors . Tuttavia, l'impostazione della proprietà compensate_for_errors determina la se le modifiche di compensazione vengono generate durante il caricamento di errori e conflitti di sottoscrittori di SQL Server CE un editore di SQL Server (quando aver aggiornato il sia in server di pubblicazione e in computer in cui è in esecuzione Microsoft Internet Information Services (IIS) per questo aggiornamento rapido (hotfix)).

Questa proprietà è esposta nella sia procedure sp_addmergearticle memorizzati e la procedura di sp_changemergearticle memorizzato come un nuovo parametro denominato @ compensate_for_errors . Questa proprietà non è esposta in SQL Server Enterprise Manager. Questa proprietà può essere modificata per articoli esistenti senza essere reinizializzata. L'utilizzo tipico di questa proprietà consiste:
exec sp_addmergearticle @publication = N'mypubl1', @article = N'authors', @source_owner = N'dbo', @source_object = N'authors', @compensate_for_errors='false'orexec sp_changemergearticle  @publication='mypubl1',@article='authors', @property='compensate_for_errors',@value='false'

Aggiunte al "sp_addmergearticle" l'argomento della documentazione in linea di SQL Server 2000

sp_addmergearticle [@compensate_for_errors = ]		  'compensate_for_errors'
La proprietà di compensate_for_errors controlla se le azioni di compensazione vengono prese durante la sincronizzazione si verificano errori. Il @ compensate_for_errors parametro viene definito come tipo nvarchar (5) e include l'impostazione predefinita true. Per impostazione predefinita, una modifica che non può essere applicata a un server di sottoscrizione o a un server di pubblicazione durante la sincronizzazione sempre conduce per azioni di compensazione per invertire la modifica. Tuttavia, un server di sottoscrizione configurato in modo non corretto che genera un errore possono provocare modifiche in altri sottoscrittori e publishers in modo non corretto da stornare. Impostazione della proprietà di compensate_for_errors per false disabilita queste azioni di compensazione.

Nota L'impostazione della proprietà compensate_for_errors su false potrebbe non di convergenza.

Aggiunte al "sp_changemergearticle" l'argomento della documentazione in linea

sp_changemergearticle [ @publication = ] 'publication' , [ @article = ] 'article' [ , [		  @property = ] 'property' ] [ , [ @value =] 'value' ]
Proprietà valori Descrizione
compensate_for_errors TrueAzioni di compensazione vengono eseguite quando si verificano errori durante la sincronizzazione. Questo è il comportamento predefinito.
compensate_for_errors False Non vengono eseguite le azioni di compensazione

Nota L'impostazione della proprietà compensate_for_errors su false potrebbe non di convergenza.

L'istruzione select seguente determina se la proprietà compensate_for_errors è impostata su true o false:
select CASE compensate_for_errors WHEN 0 THEN ‘FALSE’ ELSE ‘TRUE’ END from sysmergearticles where name = ‘NameOfTheArticle’
poiché la proprietà compensate_for_errors è una proprietà condivisa per un determinato articolo, il valore deve essere coerente se l'articolo appartiene a più pubblicazioni (ad esempio con scenari di server di ripubblicazione e partner di sincronizzazione alternativo). Questa condizione viene applicata la maggior parte del tempo. Tuttavia, è responsabilità dell'utente assicurarsi che la proprietà compensate_for_errors abbia lo stesso valore per un determinato articolo in tutte le pubblicazioni che condividono l'articolo. In questo modo, un funzionamento consistente nella topologia di.

Nota Se si dispone per ripristinare un backup di un database replicato in cui è stato eseguito il backup prima questo aggiornamento rapido (hotfix) è stato applicato all'istanza di SQL Server, eseguire la procedura di sp_vupgrade_replication memorizzati con i parametri necessari sull'istanza di SQL Server da utilizzare il database ripristinato in fase di replica.

Per ulteriori informazioni, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito riportato:
824684Descrizione della terminologia standard utilizzata per descrivere gli aggiornamenti Software Microsoft

Avviso: questo articolo è stato tradotto automaticamente

Proprietà

ID articolo: 828637 - Ultima revisione: 02/26/2014 21:08:24 - Revisione: 5.3

Microsoft SQL Server 2000 Developer Edition, Microsoft SQL Server 2000 Standard Edition, Microsoft SQL Server 2000 Enterprise Edition, Microsoft SQL Server 2000 Personal Edition, Microsoft SQL Server 2000 Workgroup Edition, Microsoft SQL Server 2000 Desktop Engine (Windows), Microsoft SQL Server 2000 Enterprise Edition 64-bit

  • kbnosurvey kbarchive kbmt kbhotfixserver kbqfe kbqfe kbsqlserv2000presp4fix kbfix kbbug KB828637 KbMtit
Feedback