Priority Groups with DBMS_REPCAT

Priority groups allow you to determine the validity of data based on its value. The priority group conflict resolution technique is most effective for data that has a finite range of possible values, and that goes through this range in a specific order.

About Priority Groups

Consider the products table:

SQL>desc products
Name				 	Null?           Type
 ------------------------------- 	-------- 	----
 PRODUCT_ID				NOT NULL 	NUMBER(9)
 PRODUCT_TYPE				NOT NULL 	NUMBER(6)
 CATALOG_ID				NOT NULL 	VARCHAR2(15)
 DESCRIPTION				NOT NULL 	VARCHAR2(30)
 REV_LEVEL				NOT NULL 	VARCHAR2(15)
 PRODUCTION_DATE			NOT NULL 	DATE
 PRODUCTION_STATUS			NOT NULL 	VARCHAR2(12)
 AUDIT_DATE				NOT NULL 	DATE
 AUDIT_USER				NOT NULL 	VARCHAR2(30)
 GLOBAL_NAME				NOT NULL 	VARCHAR2(20)

The PRODUCTION_STATUS field in this table can only take on certain values: CONCEPT, DEVELOPMENT, BETA, PRODUCTION, and DISCONTINUED. In addition, products must go through this range of values in the order given.

This concept of a sequential range of values is known as a workflow, and priority groups are designed to enforce the rules of a workflow in a replicated environment. Unlike column groups, which pertain to fields in a specific table, you can define a priority group for a specific column, which may appear in one or more tables. Once you define and configure a priority group, you can designate it to resolve update conflicts within a column group. The basic idea is that if a conflict arises, the row with the data corresponding to the higher priority ...

Get Oracle Built-in Packages now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.