Cómo administrar particiones para una publicación de mezcla mediante filtros con parámetros (programación con RMO)

Para administrar mejor una publicación con filtros parametrizados, puede crear mediante programación nuevas particiones del suscriptor, enumerar las particiones del suscriptor existentes y eliminar las particiones del suscriptor mediante objetos de administración de la replicación (RMO). Para obtener más información acerca de cómo particiones del suscriptor, vea Cómo crear una instantánea para una publicación de mezcla con filtros con parámetros (programación con RMO). Se puede obtener la información siguiente sobre las particiones existentes:

  • El valor y la función de filtrado en los que se basa la partición.

  • El nombre del trabajo que genera una instantánea con parámetros para el suscriptor.

  • La última vez que se ejecutó un trabajo de instantánea con parámetros.

Nota

Cuando una publicación ha parametrizado filtros que producen suscripciones con particiones no superpuestas, y si una suscripción determinada se pierde y necesita volverse a crear, debe realizar las siguientes acciones: quitar la partición a la que se suscribió, volver a crear la suscripción y, a continuación, volver a crear la partición. Para obtener más información, vea Filtros de fila con parámetros. La replicación genera scripts de creación para particiones del suscriptor existentes cuando se genera un script de creación de publicación. Para obtener más información, vea Crear secuencias de script.

Para ver información sobre particiones existentes

  1. Cree una conexión al publicador mediante la clase ServerConnection.

  2. Cree una instancia de la clase MergePublication. Establezca las propiedades Name y DatabaseName para la publicación y la propiedad ConnectionContext en la ServerConnection creada en el paso 1.

  3. Llame al método LoadProperties para obtener las propiedades del objeto. Si este método devuelve false, significa que las propiedades de la publicación del paso 2 se definieron incorrectamente, o bien que la publicación no existe.

  4. Llame al método EnumMergePartitions y pase el resultado a una matriz de objetos MergePartition.

  5. Para cada objeto MergePartition en la matriz, obtenga cualquier propiedad de interés.

Para eliminar particiones existentes

  1. Cree una conexión al publicador mediante la clase ServerConnection.

  2. Cree una instancia de la clase MergePublication. Establezca las propiedades Name y DatabaseName para la publicación y la propiedad ConnectionContext en la ServerConnection creada en el paso 1.

  3. Llame al método LoadProperties para obtener las propiedades del objeto. Si este método devuelve false, significa que las propiedades de la publicación del paso 2 se definieron incorrectamente, o bien que la publicación no existe.

  4. Llame al método EnumMergePartitions y pase el resultado a una matriz de objetos MergePartition.

  5. Para cada objeto MergePartition en la matriz, determine si se debería eliminar la partición. Esta decisión normalmente está basada en el valor de la propiedad DynamicFilterLogin o la propiedad DynamicFilterHostName.

  6. Llame al método RemoveMergePartition en el objeto MergePublication del paso 2. Pase el objeto MergePartition del paso 5.

  7. Repita el paso 6 para cada partición que se elimina.