24 lines
1.2 KiB
C#
24 lines
1.2 KiB
C#
namespace ZB.MOM.WW.LocalDb.Replication;
|
|
|
|
/// <summary>
|
|
/// Thrown by a live sync session when the oplog horizon has moved ABOVE the position that session
|
|
/// is streaming from: a cap prune deleted deltas it had not yet sent, so every later delta it could
|
|
/// ship would land on the far side of a hole the peer will never receive.
|
|
/// </summary>
|
|
/// <remarks>
|
|
/// This is not a transport failure and not a data error — it is the session discovering that its own
|
|
/// incremental position has become unsound. Nothing can repair it in-session (the deleted rows are
|
|
/// gone), so the session tears itself down; the same prune set <c>needs_snapshot</c>, which makes the
|
|
/// reconnect handshake serve a snapshot instead of deltas. Catching this and continuing would
|
|
/// reintroduce exactly the silent divergence it exists to stop.
|
|
/// </remarks>
|
|
public sealed class LocalDbOplogGapException : Exception
|
|
{
|
|
/// <summary>Creates the exception with a message describing the gap.</summary>
|
|
public LocalDbOplogGapException(string message) : base(message) { }
|
|
|
|
/// <summary>Creates the exception with a message and the underlying cause.</summary>
|
|
public LocalDbOplogGapException(string message, Exception innerException)
|
|
: base(message, innerException) { }
|
|
}
|