如何管理具有参数化筛选器的合并发布的分区(RMO 编程)
若要更好地管理具有参数化筛选器的发布,可以通过使用复制管理对象 (RMO) 以编程方式创建新的订阅服务器分区、枚举现有的订阅服务器分区以及删除订阅服务器分区。 有关如何创建订阅服务器分区的信息,请参阅如何创建具有参数化筛选器的合并发布的快照(RMO 编程)。 可以获得有关现有分区的以下信息:
分区所基于的值和筛选函数。
为订阅服务器生成参数化快照的作业的名称。
参数化快照作业上次运行的时间。
查看有关现有分区的信息
使用 ServerConnection 类创建与发布服务器的连接。
创建 MergePublication 类的实例。 设置发布的 Name 和 DatabaseName 属性,并将 ConnectionContext 属性设置为步骤 1 中创建的 ServerConnection。
调用 LoadProperties 方法获取该对象的属性。 如果此方法返回 false,则说明步骤 2 中的发布属性定义不正确,或者此发布不存在。
调用 EnumMergePartitions 方法,然后将结果传递至 MergePartition 对象数组。
对数组中的每个 MergePartition 对象,获取感兴趣的任何属性。
删除现有分区
使用 ServerConnection 类创建与发布服务器的连接。
创建 MergePublication 类的实例。 设置发布的 Name 和 DatabaseName 属性,并将 ConnectionContext 属性设置为步骤 1 中创建的 ServerConnection。
调用 LoadProperties 方法获取该对象的属性。 如果此方法返回 false,则说明步骤 2 中的发布属性定义不正确,或者此发布不存在。
调用 EnumMergePartitions 方法,然后将结果传递至 MergePartition 对象数组。
对数组中的每个 MergePartition 对象,确定是否应删除分区。 此决定通常基于 DynamicFilterLogin 属性的值或 DynamicFilterHostName 属性的值。
对在步骤 2 中获得的 MergePublication 对象调用 RemoveMergePartition 方法。并传递在步骤 5 中获得的 MergePartition 对象。
对已删除的每个分区重复步骤 6。