Compartir a través de


Detección y resolución de conflictos de réplica

Cuando realiza una sincronización después de la sincronización inicial, los cambios realizados en los datos en un suscriptor pueden entrar en conflicto con los realizados en otro suscriptor o el publicador. Cuando crea la publicación, asigna una resolución para solventar estos conflictos.

Eliminar conflictos

Cuando se realiza una sincronización, el Agente de mezcla que se ejecuta en el publicador detecta cualquier conflicto de datos y, a continuación, determina qué datos se aceptan y propagan a otros sitios en función de la resolución asociada con la publicación.

Microsoft SQL Server 2005 Compact Edition (SQL Server Compact Edition) admite el seguimiento por filas y por columnas al sincronizar con publicadores de SQL Server 2005. Cuando sincroniza con publicadores de SQL Server 2000, SQL Server Compact Edition sólo admite el seguimiento por filas.

Seguimiento por filas en SQL Server Compact Edition

Al sincronizar con un publicador de SQL Server 2000, el motor de base de datos de SQL Server Compact Edition llama al seguimiento cuando se inserta, actualiza o elimina cualquier fila. Cuando se detectan conflictos en el nivel de fila, los cambios realizados en las filas correspondientes se consideran un conflicto, independientemente de si los cambios se realizaron en la misma columna. Por ejemplo, se realiza un cambio en el publicador en la columna de dirección de una fila, mientras que se hace otro en el suscriptor en la columna de número de teléfono de la fila correspondiente. Con el seguimiento de nivel de fila, se detecta un conflicto porque los cambios se realizaron en la misma fila.

[!NOTA] Incluso si se configura el publicador de SQL Server 2000 con seguimiento por columnas, SQL Server Compact Edition marca la fila como si todas las columnas se hubieran modificado. El seguimiento por columnas sólo es compatible con publicadores de SQL Server 2005.

Usar resoluciones

Una vez detectado un conflicto, el Agente de mezcla inicia la resolución de conflictos que se haya seleccionado para el artículo. Puede que sea la resolución predeterminada, una de las otras resoluciones suministradas o una personalizada. Los cambios aceptados se eligen de acuerdo con las reglas de la resolución de conflictos. Los conflictos del suscriptor de SQL Server Compact Edition se detectan, resuelven y registran siempre en el publicador.

Importante:
Ahora, el acceso de varios usuarios permite que se realicen cambios durante la sincronización. Estos cambios pueden causar un conflicto en el cliente. Los conflictos en el cliente se detectan en el suscriptor, pero no se resuelven en él. El conflicto se volverá a detectar y resolver en el publicador durante la próxima sincronización. Para obtener más información, vea Sincronización y acceso multiusuario.

Las resoluciones pueden utilizar el origen del cambio de datos o el valor de prioridad del suscriptor para resolver conflictos. Por ejemplo, la resolución predeterminada sigue la regla de que los cambios en el publicador siempre reemplazan los cambios en el suscriptor. Puede decidir utilizar una resolución diferente que siempre dé prioridad a los cambios en el suscriptor sobre los del publicador.

[!NOTA] Los clientes de SQL Server Compact Edition siempre tienen el valor de prioridad 0. Por lo tanto, una resolución basada en el valor de prioridad no dará prioridad a los cambios realizados en el dispositivo.

Para obtener más información acerca de la detección y resolución de conflictos, vea el tema sobre detección y resolución de conflictos de réplica de mezcla en los Libros en pantalla de SQL Server.

[!NOTA] Las suscripciones de SQL Server Compact Edition no admiten las resoluciones de conflictos de mezcla basadas en procedimientos almacenados.

Usar resoluciones personalizadas

Las resoluciones personalizadas permiten agregar lógica de negocios a la réplica. Una resolución personalizada es una DLL en código nativo o administrado. Para usarse, la resolución personalizada debe registrarse en el publicador y el servidor que ejecuta IIS mediante el procedimiento almacenado sp_registercustomeresolver. El procedimiento almacenado sp_registercustomeresolver incluye el parámetro is_dotnet_assembly , que se establece en True para una resolución integrada en el código administrado, o en False para una DLL nativa.

Importante Se debe registrar la resolución personalizada en el equipo que ejecute IIS, así como en el equipo que ejecute SQL Server.

Vea también

Ayuda e información

Obtener ayuda sobre SQL Server Compact Edition