REVISIÓN: Los usuarios pueden controlar el proceso de compensación de cambios en la duplicación de mezcla

Seleccione idioma Seleccione idioma
Id. de artículo: 828637 - Ver los productos a los que se aplica este artículo
Este artículo se ha archivado. Se ofrece "tal cual" y no se volverá a actualizar.
Expandir todo | Contraer todo

En esta página

Síntomas

Cuando se utiliza la duplicación de mezcla, el agente de mezcla pueden producirse errores de sincronización si un cambio de inserción, un cambio de actualización o un cambio de eliminación no puede aplicarse en una réplica de destino por varias razones, incluidas una infracción de clave principal en el publicador o en el suscriptor. El agente de mezcla siempre envía un cambio de compensación a la réplica de origen para deshacer el cambio error. El agente de mezcla se ejecuta el proceso de compensación de cambios para asegurarse de que los datos se mantienen en un estado coherente y converger en todas las réplicas. Sin los cambios de compensación, datos pueden variar entre réplicas si se produce un error, como una infracción de clave principal. Si los datos se varían entre réplicas, se produce la convergencia de datos.

Antes de este hotfix, había forma de permitir que los usuarios para controlar el proceso de cambio compensación. El proceso de compensación de cambios se controla internamente el agente de mezcla. Dado que este proceso se controla internamente el agente de mezcla, era difícil solucionar por qué se ha producido ciertos conflictos. Además, porque la fila en conflicto es eliminará o deshacer en todas las réplicas, los datos de la fila se quitan de la topología completa. Para ayudar a solucionar estos problemas, Microsoft ha agregado una nueva propiedad de nivel de artículo para duplicación que permite a los usuarios controlar el proceso de cambio compensación de mezcla.

Solución

Información de Service Pack

Para resolver este problema, consiga el Service Pack más reciente para Microsoft SQL Server 2000. Para obtener información adicional, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
290211Cómo obtener el Service Pack más reciente de SQL Server 2000

Información de revisiones

La versión en inglés de este hotfix tiene los atributos de archivo enumerados en la siguiente tabla u otros posteriores. Las fechas y horas de estos archivos aparecen en la hora universal coordinada (UTC). La información de los archivos se convertirá a la hora local cuando la vea. Para averiguar la diferencia entre hora UTC y la hora local, utilice la ficha zona horaria de la herramienta fecha y hora en el panel de control.
   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 Debido a la interdependencia entre archivos, el más reciente revisión o característica que contiene estos archivos quizás contenga también archivos adicionales.

Estado

Microsoft ha confirmado que se trata de un problema de los productos de Microsoft enumerados en la sección "La información de este artículo se refiere a".Este problema se corrigió por primera vez en Pack 4 de Microsoft SQL Server 2000.

Más información

Este hotfix agrega una nueva propiedad de nivel del artículo compensate_for_errors para publicaciones de mezcla. Puede establecer esta propiedad en true o false. El valor predeterminado para esta propiedad es true. El valor predeterminado significa que la duplicación de mezcla continúa emitir los cambios de compensación como presenta en todas las versiones anteriores y los service packs. Cuando esta propiedad está establecida en true y un cambio de insertar un cambio de actualización, o puede aplicar un cambio de eliminación en una réplica de destino por varias razones (una infracción de clave principal ocurre en el publicador o suscriptor, por ejemplo), el agente de mezcla envía un cambio de compensación a la réplica de origen para deshacer el cambio.

Cuando la propiedad compensate_for_errors está establecida en false y no se aplica un cambio en una réplica de destino, las acciones de compensación no se emiten y el cambio permanece como un conflicto hasta que el Administrador de la base de datos resuelve la condición de error. El agente de mezcla intenta replicar la fila en cada sincronización posterior ejecutar hasta que se resuelva la condición de error.

Nivel inferior agentes de suscripción, especialmente los suscriptores de extracción que no tienen este hotfix instalado, continúan se comportan como si la propiedad compensate_for_errors se estableciese en true, incluso si ha instalado esta revisión en el publicador y la propiedad compensate_for_errors está establecida en false en el publicador. Por lo tanto, los usuarios deben actualizar todos los suscriptores a esta revisión si desean utilizar la funcionalidad suministrada por la nueva propiedad de compensate_for_errors . Esta actualización ayuda a garantizar un comportamiento coherente a través de la topología.

Para Microsoft SQL Server 2000 Windows CE Edition conflictos de descarga de suscriptores, se comportan igual que en todos los anteriores de SQL Server libera, independientemente de la configuración de la propiedad compensate_for_errors . Sin embargo, el valor de la propiedad compensate_for_errors determina si los cambios de compensación se generan durante la carga de errores y conflictos de suscriptores de SQL Server CE a un publicador de SQL Server (cuando tanto el publicador y el equipo que ejecuta Servicios de Internet Information Server (IIS) se hayan actualizado a esta revisión).

Esta propiedad se expone en el procedimiento sp_addmergearticle almacenado y el procedimiento sp_changemergearticle almacenado como un nuevo parámetro denominado @ compensate_for_errors . Esta propiedad no está expuesta en el Administrador corporativo de SQL Server. Esta propiedad puede cambiarse para artículos existentes sin que se reinicialicen. El uso típico de esta propiedad es:
exec sp_addmergearticle @publication = N'mypubl1', @article = N'authors', @source_owner = N'dbo', @source_object = N'authors', @compensate_for_errors='false'
or
exec sp_changemergearticle  @publication='mypubl1',@article='authors', @property='compensate_for_errors',@value='false'

Inclusiones en el tema en libros en pantalla de SQL Server 2000 "sp_addmergearticle"

sp_addmergearticle [@compensate_for_errors = ]
		  'compensate_for_errors'
La propiedad de compensate_for_errors controla si las acciones de compensación se toman cuando se detectan errores durante la sincronización. El @ compensate_for_errors parámetro está definido como de tipo nvarchar (5) y tiene un valor predeterminado de true. De forma predeterminada, un cambio que no puede aplicarse un suscriptor o en un publicador durante la sincronización siempre conduce a acciones de compensación para invertir el cambio. Sin embargo, un suscriptor configurado incorrectamente que genera un error puede provocar cambios en otros suscriptores y editores que se invertirá incorrectamente. Establecer la propiedad compensate_for_errors false deshabilita estas acciones de compensación.

Nota Establecer la propiedad de compensate_for_errors en false puede causar que no convergencia.

Inclusiones en el tema los libros en pantalla "sp_changemergearticle"

sp_changemergearticle [ @publication = ] 'publication' , [ @article = ] 'article' [ , [
		  @property = ] 'property' ] [ , [ @value =] 'value' ]
Contraer esta tablaAmpliar esta tabla
propiedad valores Descripción
compensate_for_errors Es TrueAcciones de compensación se realizan cuando se producen errores durante la sincronización. Éste es el comportamiento predeterminado.
compensate_for_errors False No se realizan las acciones de compensación

Nota Establecer la propiedad de compensate_for_errors en false puede causar que no convergencia.

La instrucción select siguiente determina si la propiedad compensate_for_errors está establecida en true o false:
select CASE compensate_for_errors WHEN 0 THEN ?FALSE? ELSE ?TRUE? END from sysmergearticles where name = ?NameOfTheArticle?

como la propiedad compensate_for_errors es una propiedad compartida para un artículo concreto, su valor debe para ser coherente si el artículo pertenece a varias publicaciones (como con escenarios de republicador y asociados de sincronización alternativo). Esta condición se aplica la mayor parte del tiempo. Sin embargo, es responsabilidad del usuario para asegurarse de que la propiedad compensate_for_errors tiene el mismo valor para un artículo concreto en todas las publicaciones que comparten el artículo. De nuevo, esto garantiza un comportamiento coherente a través de la topología.

Nota Si tiene que restaurar una copia de seguridad de una base de datos replicada que hizo antes de esta revisión se aplicara a la instancia de SQL Server, ejecute el procedimiento sp_vupgrade_replication almacenados con los parámetros necesarios con la instancia de SQL Server para utilizar la base de datos restaurado en la replicación.

Para obtener información adicional, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
824684Descripción de la terminología estándar utilizada para describir las actualizaciones de software de Microsoft

Propiedades

Id. de artículo: 828637 - Última revisión: jueves, 27 de febrero de 2014 - Versión: 5.3
La información de este artículo se refiere a:
  • 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
Palabras clave: 
kbnosurvey kbarchive kbmt kbhotfixserver kbqfe kbqfe kbsqlserv2000presp4fix kbfix kbbug KB828637 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 828637

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com