Compartir a través de


Interoperar con un proveedor

Metadata Storage Service proporciona métodos para ayudar a simplificar la implementación de un proveedor de sincronización. Estos métodos ayudan a realizar las tareas siguientes:

  • Al proveedor de origen a enumerar los cambios.

  • Al proveedor de origen a filtrar los cambios durante la enumeración de cambios.

  • Al proveedor de destino a obtener las versiones de destino de los elementos para el aplicador de los cambios.

  • Al proveedor o a una aplicación a limpiar los elementos marcados comos eliminados en el almacén de metadatos.

  • Al proveedor de destino a recuperar una réplica de destino obsoleta.

Enumerar los cambios

El objeto de metadatos de réplica contiene un método que enumera los cambios cuando el proveedor actúa como proveedor de origen. En la mayoría de los casos, el método GetChangeBatch del proveedor se puede implementar pasando sus parámetros directamente a la implementación del objeto de metadatos de réplica.

Código administrado: para enumerar los cambios que se realizaron en la réplica de origen, llame al método GetChangeBatch del objeto ReplicaMetadata.

Código no administrado: para enumerar los cambios que se realizaron en la réplica de origen, llame al método IReplicaMetadata::GetChangeBatch.

Filtrar los cambios

La sincronización filtrada se controla mediante una devolución de llamada. El método de devolución de llamada se llama antes de agregar un elemento al lote de cambios. De esta forma, se da la oportunidad al controlador de devolución de llamada para que examine cada elemento e indique si debería incluirse en el lote.

Código administrado: para filtrar los cambios que están incluidos en un lote de cambios, implemente un delegado ItemFilterCallback y páselo a GetFilteredChangeBatch.

Código no administrado: para filtrar los cambios que están incluidos en un lote de cambios, implemente un IChangeBatchCallback y páselo a IReplicaMetadata::GetFilteredChangeBatch.

Obtener las versiones de destino

El objeto de metadatos de réplica proporciona un método que ayuda a un proveedor de destino a implementar su método ProcessChangeBatch obteniendo las versiones en la réplica de destino para los elementos que están contenidos en el lote de cambios del proveedor de origen. Este lote de versiones de destino se puede pasar entonces al aplicador de los cambios.

Código administrado: para obtener un lote de cambios que contenga las versiones aplicables a la réplica de destino, llame al método GetLocalVersions del objeto ReplicaMetadata.

Código no administrado: para obtener un lote de cambios que contenga las versiones aplicables a la réplica de destino, llame al método IReplicaMetadata::GetItemBatchVersions.

Limpiar los elementos eliminados

Los elementos que se han eliminado de la réplica se conservan en el almacén de metadatos con un valor que indica que se han eliminado. Para evitar quedarse sin espacio de almacenamiento en la réplica, los metadatos de estos elementos eliminados se deben limpiar periódicamente. El objeto de metadatos de réplica proporciona el método IReplicaMetadata::CleanupDeletedItems (en el código administrado) o CleanupDeletedItems (en el código no administrado) para ayudar a los proveedores a limpiar los elementos eliminados de forma regular. El proveedor especifica un intervalo de tiempo que representa la edad mínima de los elementos eliminados que se mantienen en el almacén de metadatos y llama regularmente al método de limpieza, por ejemplo cada vez que el proveedor realiza la detección de los cambios. Para proteger al proveedor contra las costosas enumeraciones completas, el método de limpieza limpia los elementos eliminados solo cuando transcurre el tiempo especificado y siempre mantiene los elementos eliminados que son posteriores al intervalo de tiempo indicado. El método de limpieza también actualiza el conocimiento olvidado para reflejar los elementos eliminados que se quitaron.

Recuperar una réplica obsoleta

Cuando Sync Framework detecta que la réplica de destino está obsoleta, Sync Framework activa una enumeración completa para restaurar la réplica de destino. Una réplica de destino está obsoleta cuando la réplica de origen ha quitado los elementos eliminados de sus metadatos pero no ha comunicado las eliminaciones de elementos a la réplica de destino. Para realizar una enumeración completa, Sync Framework llama al método GetFullEnumerationChangeBatch del proveedor de origen y al método ProcessFullEnumerationChangeBatch del proveedor de destino. Metadata Storage Service proporciona métodos que ayudan a los proveedores a implementar estos métodos.

Código administrado: cuando se llama al método GetFullEnumerationChangeBatch del proveedor de origen, este puede llamar al método GetFullEnumerationChangeBatch del objeto ReplicaMetadata. Cuando se llama al método ProcessFullEnumerationChangeBatch del proveedor de destino, este puede obtener un lote de cambios que contiene las versiones que se aplican a la réplica de destino llamando al método GetFullEnumerationLocalVersions del objeto ReplicaMetadata.

Código no administrado: cuando se llama al método GetFullEnumerationChangeBatch del proveedor de origen, este puede llamar al método IReplicaMetadata::GetFullEnumerationChangeBatch. Cuando se llama al método ProcessFullEnumerationChangeBatch del proveedor de destino, este puede obtener un lote de cambios que contiene las versiones que se pueden aplicar a la réplica de destino llamando al método IReplicaMetadata::GetFullEnumerationItemBatchVersions.

Vea también

Referencia

Interfaz IReplicaMetadata
Interfaz IChangeBatchCallback
ReplicaMetadata
ItemFilterCallback

Otros recursos

Sync Framework Metadata Storage Service