Replication: Changes to refresh operations that fail with dangling reference errors¶
Attention
This behavior change is in the 2024_02 bundle.
For the current status of the bundle, refer to Bundle History.
A dangling reference occurs when an object in a replication or failover group has
an object dependency on another object that is not included in the group. For example, a
materialized view v1 in database db1 references table t1 in database db2. If db1 is included
in replication group rg1, but db2 is not included in the group, a dangling reference occurs because the referenced
object t1 is not included in the group that contains the referencing object v1.
In some cases, a dangling reference causes the refresh operation to fail:
- Referenced security policies are not included in the replication or failover group.
- Security policies are included in the group, but other required objects are not included in the group (for example, see Replicating network policies).
- The referenced object for a stream is not included in the replication or failover group.
The behavior for refresh operations that fail with dangling reference errors is as follows:
- Before the change:
- Dangling reference error messages are not aggregated. Multiple dangling reference errors cause refresh operation failures to occur one after another, making it hard to address all issues at once.
- Dangling reference error messages do not include the fully-qualified domain name of the missing referenced object.
- A refresh operation with a dangling reference error might partially complete before failure, resulting in some objects being updated.
- After the change:
- Dangling reference error messages are aggregated such that all cases that can cause refresh operation failures are surfaced at the same time.
- Dangling reference error messages include the fully-qualified domain name of the missing referenced object.
- Refresh operations with dangling reference errors fail before any secondary objects are updated.
Ref: 1555