PrimaryBasedLogViewAdaptor<TLogView,TLogEntry,TSubmissionEntry> Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Modello generale per la costruzione di adattatori di visualizzazione log basati su una replica primaria di lettura e scrittura sequenziale. Viene usato per creare un'ampia gamma di provider di coerenza dei log diversi, seguendo lo stesso modello di base (lettura e scrittura della visualizzazione più recente da/a primario e invio di notifiche dopo la scrittura).
Si noti che il log stesso è temporaneo, ovvero non viene effettivamente salvato nella risorsa di archiviazione. Solo la visualizzazione più recente e alcuni metadati (la posizione del log e i flag di scrittura) vengono archiviati nel database primario. È sicuro interleavere le chiamate a questo adattatore (usando solo l'utilità di pianificazione granulare, naturalmente).
Le sottoclassi eseguono l'override di ReadAsync e WriteAsync per la lettura da/scrittura a primaria. Le chiamate al database primario vengono serializzate, ovvero non vengono mai interleave.
public abstract class PrimaryBasedLogViewAdaptor<TLogView,TLogEntry,TSubmissionEntry> : Orleans.LogConsistency.ILogViewAdaptor<TLogView,TLogEntry>, Orleans.LogConsistency.ILogViewRead<TLogView,TLogEntry>, Orleans.LogConsistency.ILogViewUpdate<TLogEntry> where TLogView : class, new() where TLogEntry : class where TSubmissionEntry : SubmissionEntry<TLogEntry>
public abstract class PrimaryBasedLogViewAdaptor<TLogView,TLogEntry,TSubmissionEntry> : Orleans.EventSourcing.ILogViewAdaptor<TLogView,TLogEntry>, Orleans.EventSourcing.ILogViewRead<TLogView,TLogEntry>, Orleans.EventSourcing.ILogViewUpdate<TLogEntry> where TLogView : class, new() where TLogEntry : class where TSubmissionEntry : SubmissionEntry<TLogEntry>
type PrimaryBasedLogViewAdaptor<'LogView, 'LogEntry, 'SubmissionEntry (requires 'LogView : null and 'LogView : (new : unit -> 'LogView) and 'LogEntry : null and 'SubmissionEntry :> SubmissionEntry<'LogEntry>)> = class
interface ILogViewAdaptor<'LogView, 'LogEntry (requires 'LogView : null and 'LogView : (new : unit -> 'LogView) and 'LogEntry : null)>
interface ILogViewRead<'LogView, 'LogEntry (requires 'LogView : null and 'LogView : (new : unit -> 'LogView) and 'LogEntry : null)>
interface ILogViewUpdate<'LogEntry (requires 'LogEntry : null)>
interface ILogConsistencyDiagnostics
Public MustInherit Class PrimaryBasedLogViewAdaptor(Of TLogView, TLogEntry, TSubmissionEntry)
Implements ILogViewAdaptor(Of TLogView, TLogEntry), ILogViewRead(Of TLogView, TLogEntry), ILogViewUpdate(Of TLogEntry)
Parametri di tipo
- TLogView
Visualizzazione definita dall'utente del log
- TLogEntry
Tipo delle voci di log
- TSubmissionEntry
Tipo di voci di invio archiviate nella coda in sospeso
- Ereditarietà
-
PrimaryBasedLogViewAdaptor<TLogView,TLogEntry,TSubmissionEntry>
- Implementazioni
Costruttori
PrimaryBasedLogViewAdaptor<TLogView,TLogEntry,TSubmissionEntry>(ILogViewAdaptorHost<TLogView,TLogEntry>, TLogView, ILogConsistencyProtocolServices) |
Costruire un'istanza di per i parametri specificati. |
PrimaryBasedLogViewAdaptor<TLogView,TLogEntry,TSubmissionEntry>(ILogViewAdaptorHost<TLogView,TLogEntry>, TLogView, ILogConsistencyProtocolServices) |
Costruire un'istanza di per i parametri specificati. |
Campi
LastPrimaryIssue |
Archiviare l'ultimo problema che si è verificato durante la lettura o l'aggiornamento del database primario. Valore Null se l'operazione riesce. |
stats |
Modello generale per la costruzione di adattatori di visualizzazione log basati su una replica primaria di lettura e scrittura sequenziale. Viene usato per creare un'ampia gamma di provider di coerenza dei log diversi, seguendo lo stesso modello di base (lettura e scrittura della visualizzazione più recente da/a primario e invio di notifiche dopo la scrittura). Si noti che il log stesso è temporaneo, ovvero non viene effettivamente salvato nella risorsa di archiviazione. Solo la visualizzazione più recente e alcuni metadati (la posizione del log e i flag di scrittura) vengono archiviati nel database primario. È sicuro interleavere le chiamate a questo adattatore (usando solo l'utilità di pianificazione granulare, naturalmente). Le sottoclassi eseguono l'override di ReadAsync e WriteAsync per la lettura da/scrittura a primaria. Le chiamate al database primario vengono serializzate, ovvero non vengono mai interleave. |
Proprietà
Configuration |
Configurazione multi-cluster corrente per questa istanza di granularità. |
ConfirmedVersion |
Lunghezza del prefisso confermato del log |
ConfirmedView |
Visualizzazione confermata del log (che riflette solo le voci confermate) |
Host |
Granularità che usa questo adattatore. |
Services |
I servizi di runtime necessari per l'implementazione di notifiche tra istanze di granularità in un cluster diverso. |
SupportSubmissions |
Indica se il cluster supporta l'invio di aggiornamenti |
TentativeView |
Visualizzazione locale provvisoria del log (che riflette sia le voci confermate che non confermate) |
UnconfirmedSuffix |
Elenco delle voci inviate che non vengono ancora visualizzate nel prefisso confermato. |
UnresolvedConnectionIssues |
restituisce un elenco di tutti i problemi di integrità della connessione non ancora ripristinati. Tali problemi vengono osservati durante la comunicazione con il server primario o durante il tentativo di notificare ad altri cluster, ad esempio. |
Metodi
BroadcastNotification(INotificationMessage, String) |
Inviare un messaggio di notifica a tutte le istanze remote |
ConfirmSubmittedEntries() |
Confermare tutte le voci inviate. Attende che tutte le voci inviate in precedenza vengano visualizzate nel prefisso confermato del log. |
CopyTentativeState() |
Modello generale per la costruzione di adattatori di visualizzazione log basati su una replica primaria di lettura e scrittura sequenziale. Viene usato per creare un'ampia gamma di provider di coerenza dei log diversi, seguendo lo stesso modello di base (lettura e scrittura della visualizzazione più recente da/a primario e invio di notifiche dopo la scrittura). Si noti che il log stesso è temporaneo, ovvero non viene effettivamente salvato nella risorsa di archiviazione. Solo la visualizzazione più recente e alcuni metadati (la posizione del log e i flag di scrittura) vengono archiviati nel database primario. È sicuro interleavere le chiamate a questo adattatore (usando solo l'utilità di pianificazione granulare, naturalmente). Le sottoclassi eseguono l'override di ReadAsync e WriteAsync per la lettura da/scrittura a primaria. Le chiamate al database primario vengono serializzate, ovvero non vengono mai interleave. |
DisableStatsCollection() |
Disabilitare la raccolta di statistiche |
EnableStatsCollection() |
il metodo è virtuale in modo che le sottoclassi possano aggiungere i propri eventi |
EnsureClusterJoinedAsync() |
Blocca fino a quando il cluster non viene aggiunto al multicluster. |
GetCaughtUpWithConfigurationAsync(DateTime) |
Attendere che il cluster abbia ricevuto una configurazione che sia almeno nuova come timestamp |
GetConfirmedVersion() |
Leggere la versione dello stato globale memorizzato nella cache. |
GetCurrentBatchOfUpdates() |
Modello generale per la costruzione di adattatori di visualizzazione log basati su una replica primaria di lettura e scrittura sequenziale. Viene usato per creare un'ampia gamma di provider di coerenza dei log diversi, seguendo lo stesso modello di base (lettura e scrittura della visualizzazione più recente da/a primario e invio di notifiche dopo la scrittura). Si noti che il log stesso è temporaneo, ovvero non viene effettivamente salvato nella risorsa di archiviazione. Solo la visualizzazione più recente e alcuni metadati (la posizione del log e i flag di scrittura) vengono archiviati nel database primario. È sicuro interleavere le chiamate a questo adattatore (usando solo l'utilità di pianificazione granulare, naturalmente). Le sottoclassi eseguono l'override di ReadAsync e WriteAsync per la lettura da/scrittura a primaria. Le chiamate al database primario vengono serializzate, ovvero non vengono mai interleave. |
GetNumberPendingUpdates() |
Modello generale per la costruzione di adattatori di visualizzazione log basati su una replica primaria di lettura e scrittura sequenziale. Viene usato per creare un'ampia gamma di provider di coerenza dei log diversi, seguendo lo stesso modello di base (lettura e scrittura della visualizzazione più recente da/a primario e invio di notifiche dopo la scrittura). Si noti che il log stesso è temporaneo, ovvero non viene effettivamente salvato nella risorsa di archiviazione. Solo la visualizzazione più recente e alcuni metadati (la posizione del log e i flag di scrittura) vengono archiviati nel database primario. È sicuro interleavere le chiamate a questo adattatore (usando solo l'utilità di pianificazione granulare, naturalmente). Le sottoclassi eseguono l'override di ReadAsync e WriteAsync per la lettura da/scrittura a primaria. Le chiamate al database primario vengono serializzate, ovvero non vengono mai interleave. |
GetStats() |
Ottenere gli stati |
InitializeConfirmedView(TLogView) |
Impostare la visualizzazione confermata del valore iniziale (una visualizzazione del log vuoto) |
IsMyClusterJoined() |
Modello generale per la costruzione di adattatori di visualizzazione log basati su una replica primaria di lettura e scrittura sequenziale. Viene usato per creare un'ampia gamma di provider di coerenza dei log diversi, seguendo lo stesso modello di base (lettura e scrittura della visualizzazione più recente da/a primario e invio di notifiche dopo la scrittura). Si noti che il log stesso è temporaneo, ovvero non viene effettivamente salvato nella risorsa di archiviazione. Solo la visualizzazione più recente e alcuni metadati (la posizione del log e i flag di scrittura) vengono archiviati nel database primario. È sicuro interleavere le chiamate a questo adattatore (usando solo l'utilità di pianificazione granulare, naturalmente). Le sottoclassi eseguono l'override di ReadAsync e WriteAsync per la lettura da/scrittura a primaria. Le chiamate al database primario vengono serializzate, ovvero non vengono mai interleave. |
LastConfirmedView() |
Legge lo stato globale memorizzato nella cache. |
MakeSubmissionEntry(TLogEntry) |
Creare una voce di invio per la voce di log inviata. Usando un parametro di tipo, è possibile aggiungere informazioni specifiche del protocollo a questa classe. |
Merge(INotificationMessage, INotificationMessage) |
Unire due messaggi di notifica per l'invio in batch. Eseguire l'override per gestire i sottotipi di notifica. |
NotifyPromises(Int32, Boolean) |
inviare notifiche di errore |
OnConfigurationChange(MultiClusterConfiguration) |
Chiamato quando viene modificata la configurazione del multicluster. |
OnMessageReceived(ILogConsistencyProtocolMessage) |
Gestire i messaggi del protocollo. |
OnMessageReceived(ILogConsistencyProtocolMessage) |
Gestire i messaggi del protocollo. |
OnMultiClusterConfigurationChange(MultiClusterConfiguration) |
Chiamato da MultiClusterOracle quando si verifica una modifica della configurazione. |
OnNotificationReceived(INotificationMessage) |
Gestire i messaggi di notifica. Eseguire l'override di questa opzione per gestire i sottotipi di notifica. |
OnProtocolMessageReceived(ILogConsistencyProtocolMessage) |
Chiamata dalla rete |
OnProtocolMessageReceived(ILogConsistencyProtocolMessage) |
Chiamata dalla rete |
PostOnActivate() |
Modello generale per la costruzione di adattatori di visualizzazione log basati su una replica primaria di lettura e scrittura sequenziale. Viene usato per creare un'ampia gamma di provider di coerenza dei log diversi, seguendo lo stesso modello di base (lettura e scrittura della visualizzazione più recente da/a primario e invio di notifiche dopo la scrittura). Si noti che il log stesso è temporaneo, ovvero non viene effettivamente salvato nella risorsa di archiviazione. Solo la visualizzazione più recente e alcuni metadati (la posizione del log e i flag di scrittura) vengono archiviati nel database primario. È sicuro interleavere le chiamate a questo adattatore (usando solo l'utilità di pianificazione granulare, naturalmente). Le sottoclassi eseguono l'override di ReadAsync e WriteAsync per la lettura da/scrittura a primaria. Le chiamate al database primario vengono serializzate, ovvero non vengono mai interleave. |
PostOnDeactivate() |
Chiamato durante la disattivazione, subito dopo l'oggetto definito dall'utente OnDeactivateAsync(). |
PreOnActivate() |
Chiamato durante l'attivazione, subito prima dell'oggetto definito dall'utente OnActivateAsync(). |
ProcessNotifications() |
Elaborare le notifiche archiviate durante il ciclo di lavoro. Eseguire l'override per gestire i sottotipi di notifica. |
ReadAsync() |
Leggere lo stato primario più recente. Il blocco o il nuovo tentativo deve essere eseguito fino a quando l'operazione non riesce. Non deve generare eccezioni, ma registrarle in LastPrimaryIssue |
RemoveStaleConditionalUpdates() |
passare attraverso gli aggiornamenti e rimuovere tutti gli aggiornamenti condizionali che hanno già avuto esito negativo |
RetrieveLogSegment(Int32, Int32) |
Modello generale per la costruzione di adattatori di visualizzazione log basati su una replica primaria di lettura e scrittura sequenziale. Viene usato per creare un'ampia gamma di provider di coerenza dei log diversi, seguendo lo stesso modello di base (lettura e scrittura della visualizzazione più recente da/a primario e invio di notifiche dopo la scrittura). Si noti che il log stesso è temporaneo, ovvero non viene effettivamente salvato nella risorsa di archiviazione. Solo la visualizzazione più recente e alcuni metadati (la posizione del log e i flag di scrittura) vengono archiviati nel database primario. È sicuro interleavere le chiamate a questo adattatore (usando solo l'utilità di pianificazione granulare, naturalmente). Le sottoclassi eseguono l'override di ReadAsync e WriteAsync per la lettura da/scrittura a primaria. Le chiamate al database primario vengono serializzate, ovvero non vengono mai interleave. |
Submit(TLogEntry) |
Inviare una singola voce di log da aggiungere al log globale, in corrispondenza della posizione corrente o successiva. |
SubmitRange(IEnumerable<TLogEntry>) |
Inviare un intervallo di voci di log da aggiungere in modo atomico al log globale, in corrispondenza dell'attuale o in una posizione successiva. |
Synchronize() |
Ottenere la visualizzazione log più recente e confermare tutte le voci inviate. Attende che tutte le voci inviate in precedenza vengano visualizzate nel prefisso confermato del log e forza un aggiornamento del prefisso confermato. |
TryAppend(TLogEntry) |
Provare ad aggiungere una singola voce di log nella posizione corrente del log. |
TryAppendRange(IEnumerable<TLogEntry>) |
Provare ad aggiungere un intervallo di voci di log in modo atomico nella posizione corrente del log. |
WriteAsync() |
Applicare voci in sospeso al database primario. Il blocco o il nuovo tentativo deve essere eseguito fino a quando l'operazione non riesce. Non deve generare eccezioni, ma registrarle in LastPrimaryIssue |