Table of Contents

Class FileOutboxRecovery

Namespace
Xapi.Client.Outbox
Assembly
Xapi.Client.Outbox.dll

What FileOutboxStore had to repair when it opened its journal.

public sealed record FileOutboxRecovery : IEquatable<FileOutboxRecovery>
Inheritance
FileOutboxRecovery
Implements
Inherited Members

Constructors

FileOutboxRecovery(int, long, string?)

Creates a recovery report.

public FileOutboxRecovery(int unreadableRecords, long discardedTailBytes, string? corruptJournalCopyPath)

Parameters

unreadableRecords int

The number of journal lines that were skipped; see UnreadableRecords.

discardedTailBytes long

The length of the incomplete last line; see DiscardedTailBytes.

corruptJournalCopyPath string

The path of a copy of the damaged journal, if one was made.

Properties

CorruptJournalCopyPath

When UnreadableRecords is not 0, the path of a copy of the journal as it was found, for inspection. The store itself continues with a rewritten journal.

public string? CorruptJournalCopyPath { get; init; }

Property Value

string

DiscardedTailBytes

The length of an incomplete last line that was cut off: a write interrupted by a crash or power loss. Its change was never acknowledged, so nothing that was reported as stored is lost.

public long DiscardedTailBytes { get; init; }

Property Value

long

UnreadableRecords

Complete journal lines that failed their checksum or could not be read, and were skipped. Each one is a change that had been acknowledged, so a Statement may be missing (a skipped add), sent again (a skipped removal, harmless because ids are fixed) or still pending (a skipped dead letter). This only happens when the file was damaged on disk, not after a crash.

public int UnreadableRecords { get; init; }

Property Value

int