Componentes de Sync Framework Metadata Storage Service

Metadata Storage Service proporciona compatibilidad para almacenar y controlar metadatos de sincronización.

API de Metadata Storage Service

La API de Metadata Storage Service consta de los elementos siguientes:

Estructura CUSTOM_FIELD_DEFINITION

Interfaz IItemMetadata2

Estructura CUSTOM_FIELDS_INDEX

Interfaz IItemMetadataEnumerator

Enumeración METASTORE_ISOLATIONLEVEL

Interfaz IMetadataStoreUpgradeCallback

Enumeración SYNC_METADATA_FIELD_TYPE

Interfaz IProviderMetadataUpgradeCallback

Códigos de error de Metadata Storage

Interfaz IReplicaMetadata

Interfaz IChangeBatchCallback

Interfaz IReplicaMetadata2

Interfaz IChangeUnitMetadata

Interfaz ISqlSyncMetadataStore

Interfaz IChangeUnitMetadataEnumerator

Interfaz ISyncMetadataStore

Interfaz IFieldValue

Interfaz ISyncMetadataStore2

Interfaz IItemMetadata

Interfaz ISyncMetadataStoreSerializer

Usar Metadata Storage Service

Metadata Storage Service es un conjunto de interfaces que pueden usar los desarrolladores de servicios de almacenamiento con el fin de implementar un conjunto personalizado de clases para almacenar metadatos en cualquier tipo de almacén de datos. Metadata Storage Service también proporciona una implementación de la interfaz que usa una base de datos ligera para almacenar metadatos de sincronización en un archivo de base de datos único en un sistema de archivos.

Inicializar los metadatos

La interfaz principal para todos los almacenes de metadatos es ISyncMetadataStore. Esta interfaz contiene métodos para inicializar y obtener metadatos de réplica en el almacén de metadatos e iniciar y detener transacciones en la base de datos. Las interfaces que heredan de esta interfaz, como ISqlSyncMetadataStore, pueden proporcionar métodos para crear y abrir almacenes de metadatos.

ISyncMetadataStore::InitializeReplicaMetadata inicializa los metadatos de réplica en el almacén de metadatos. El parámetro CUSTOM_FIELD_DEFINITION de este método permite crear un conjunto de campos personalizados. Estos campos se pueden usar para almacenar metadatos adicionales para los elementos del almacén de metadatos. El parámetro CUSTOM_FIELDS_INDEX permite definir conjuntos de campos como índices. Estos índices se pueden usar para localizar eficazmente elementos en el almacén de metadatos.

Encapsular metadatos para las réplicas

La interfaz IReplicaMetadata encapsula todos los metadatos para una réplica determinada. Se puede tener acceso a los metadatos de réplica mediante métodos como IReplicaMetadata::GetKnowledge e IReplicaMetadata::GetReplicaId.

Varios de los métodos de esta interfaz ayudan a implementar los métodos del proveedor de sincronización, como los mostrados a continuación:

  • IReplicaMetadata::GetChangeBatch. Este método puede realizar la mayoría del trabajo para el método IKnowledgeSyncProvider::GetChangeBatch.

  • IReplicaMetadata::GetItemBatchVersions. Se puede llamar a este método desde el método IKnowledgeSyncProvider::ProcessChangeBatch para buscar versiones locales de los elementos del lote de cambios. Estas versiones locales son necesarias para el aplicador de cambios.

IReplicaMetadata también contiene el servicio de detección de eliminaciones. Un proveedor puede usar métodos como IReplicaMetadata::GetUnreportedItems para detectar qué elementos se han eliminado del almacén de elementos y deberían marcarse como eliminados en el almacén de metadatos.

Encapsular metadatos para los elementos

Los metadatos del elemento se pueden encontrar en el almacén de metadatos usando los métodos de IReplicaMetadata para buscar por identificador de elemento o por campos indizados, como IReplicaMetadata::FindItemMetadataByGlobalId o IReplicaMetadata::FindItemMetadataByIndexedFields. La clase Interfaz IItemMetadata encapsula todos los metadatos para un elemento determinado. Se puede tener acceso a estos metadatos mediante métodos como IItemMetadata::GetChangeVersion, IItemMetadata::GetCreationVersion, IItemMetadata::GetGlobalId e IItemMetadata::GetIsDeleted. Esta clase también contiene varios métodos que se pueden usar para tener acceso a los campos personalizados que se definieron cuando se inicializaron los metadatos de la réplica.

Códigos de error

Metadata Storage Service usa un conjunto de errores personalizados para notificar los problemas. Para obtener más información, vea Códigos de error de Metadata Storage.

Vea también

Referencia

Microsoft.Synchronization.MetadataStorage

Otros recursos

Sync Framework Metadata Storage Service