PrimaryBasedLogViewAdaptor<TLogView,TLogEntry,TSubmissionEntry> Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Plantilla general para construir adaptadores de vista de registro basados en una principal de lectura y escritura secuencial. Esto se usa para construir una variedad de proveedores de coherencia de registros diferentes, todos siguiendo el mismo patrón básico (lectura y escritura de la vista más reciente de /a la principal y envío de notificaciones después de escribir).
Tenga en cuenta que el propio registro es transitorio, es decir, no se guarda realmente en el almacenamiento, solo la vista más reciente y algunos metadatos (la posición del registro y las marcas de escritura) se almacenan en la principal. Es seguro intercalar llamadas a este adaptador (usando solo programador de granos, por supuesto).
Las subclases invalidan ReadAsync y WriteAsync para leer de o escribir en principal. Las llamadas a la principal se serializan, es decir, nunca intercalar.
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)
Parámetros de tipo
- TLogView
Vista definida por el usuario del registro
- TLogEntry
Tipo de las entradas de registro
- TSubmissionEntry
Tipo de entradas de envío almacenadas en la cola pendiente
- Herencia
-
PrimaryBasedLogViewAdaptor<TLogView,TLogEntry,TSubmissionEntry>
- Implementaciones
Constructores
PrimaryBasedLogViewAdaptor<TLogView,TLogEntry,TSubmissionEntry>(ILogViewAdaptorHost<TLogView,TLogEntry>, TLogView, ILogConsistencyProtocolServices) |
Construya una instancia de para los parámetros especificados. |
PrimaryBasedLogViewAdaptor<TLogView,TLogEntry,TSubmissionEntry>(ILogViewAdaptorHost<TLogView,TLogEntry>, TLogView, ILogConsistencyProtocolServices) |
Construya una instancia de para los parámetros especificados. |
Campos
LastPrimaryIssue |
Almacene el último problema que se produjo al leer o actualizar el principal. Es null si se ejecuta correctamente. |
stats |
Plantilla general para construir adaptadores de vista de registro basados en una principal de lectura y escritura secuencial. Esto se usa para construir una variedad de proveedores de coherencia de registros diferentes, todos siguiendo el mismo patrón básico (lectura y escritura de la vista más reciente de /a la principal y envío de notificaciones después de escribir). Tenga en cuenta que el propio registro es transitorio, es decir, no se guarda realmente en el almacenamiento, solo la vista más reciente y algunos metadatos (la posición del registro y las marcas de escritura) se almacenan en la principal. Es seguro intercalar llamadas a este adaptador (usando solo programador de granos, por supuesto). Las subclases invalidan ReadAsync y WriteAsync para leer de o escribir en principal. Las llamadas a la principal se serializan, es decir, nunca intercalar. |
Propiedades
Configuration |
Configuración actual de varios clústeres para esta instancia específica. |
ConfirmedVersion |
Longitud del prefijo confirmado del registro |
ConfirmedView |
Vista confirmada del registro (que refleja solo las entradas confirmadas) |
Host |
El grano que usa este adaptador. |
Services |
Los servicios en tiempo de ejecución necesarios para implementar notificaciones entre instancias específicas en un clúster diferente. |
SupportSubmissions |
Si este clúster admite el envío de actualizaciones |
TentativeView |
Vista local y provisional del registro (que refleja las entradas confirmadas y no confirmadas) |
UnconfirmedSuffix |
Lista de las entradas enviadas que aún no aparecen en el prefijo confirmado. |
UnresolvedConnectionIssues |
devuelve una lista de todos los problemas de estado de conexión que aún no se han restaurado. Estos problemas se observan al comunicarse con el servidor principal o al intentar notificar a otros clústeres, por ejemplo. |
Métodos
BroadcastNotification(INotificationMessage, String) |
Enviar un mensaje de notificación a todas las instancias remotas |
ConfirmSubmittedEntries() |
Confirme todas las entradas enviadas. Espera hasta que todas las entradas enviadas previamente aparezcan en el prefijo confirmado del registro. |
CopyTentativeState() |
Plantilla general para construir adaptadores de vista de registro basados en una principal de lectura y escritura secuencial. Esto se usa para construir una variedad de proveedores de coherencia de registros diferentes, todos siguiendo el mismo patrón básico (lectura y escritura de la vista más reciente de /a la principal y envío de notificaciones después de escribir). Tenga en cuenta que el propio registro es transitorio, es decir, no se guarda realmente en el almacenamiento, solo la vista más reciente y algunos metadatos (la posición del registro y las marcas de escritura) se almacenan en la principal. Es seguro intercalar llamadas a este adaptador (usando solo programador de granos, por supuesto). Las subclases invalidan ReadAsync y WriteAsync para leer de o escribir en principal. Las llamadas a la principal se serializan, es decir, nunca intercalar. |
DisableStatsCollection() |
Deshabilitación de la colección de estadísticas |
EnableStatsCollection() |
method es virtual, por lo que las subclases pueden agregar sus propios eventos |
EnsureClusterJoinedAsync() |
Bloquee hasta que este clúster esté unido al clúster múltiple. |
GetCaughtUpWithConfigurationAsync(DateTime) |
Espere hasta que este clúster haya recibido una configuración que sea al menos tan nueva como marca de tiempo. |
GetConfirmedVersion() |
Lee la versión del estado global almacenado en caché. |
GetCurrentBatchOfUpdates() |
Plantilla general para construir adaptadores de vista de registro basados en una principal de lectura y escritura secuencial. Esto se usa para construir una variedad de proveedores de coherencia de registros diferentes, todos siguiendo el mismo patrón básico (lectura y escritura de la vista más reciente de /a la principal y envío de notificaciones después de escribir). Tenga en cuenta que el propio registro es transitorio, es decir, no se guarda realmente en el almacenamiento, solo la vista más reciente y algunos metadatos (la posición del registro y las marcas de escritura) se almacenan en la principal. Es seguro intercalar llamadas a este adaptador (usando solo programador de granos, por supuesto). Las subclases invalidan ReadAsync y WriteAsync para leer de o escribir en principal. Las llamadas a la principal se serializan, es decir, nunca intercalar. |
GetNumberPendingUpdates() |
Plantilla general para construir adaptadores de vista de registro basados en una principal de lectura y escritura secuencial. Esto se usa para construir una variedad de proveedores de coherencia de registros diferentes, todos siguiendo el mismo patrón básico (lectura y escritura de la vista más reciente de /a la principal y envío de notificaciones después de escribir). Tenga en cuenta que el propio registro es transitorio, es decir, no se guarda realmente en el almacenamiento, solo la vista más reciente y algunos metadatos (la posición del registro y las marcas de escritura) se almacenan en la principal. Es seguro intercalar llamadas a este adaptador (usando solo programador de granos, por supuesto). Las subclases invalidan ReadAsync y WriteAsync para leer de o escribir en principal. Las llamadas a la principal se serializan, es decir, nunca intercalar. |
GetStats() |
Obtener estados |
InitializeConfirmedView(TLogView) |
Establecer la vista confirmada del valor inicial (una vista del registro vacío) |
IsMyClusterJoined() |
Plantilla general para construir adaptadores de vista de registro basados en una principal de lectura y escritura secuencial. Esto se usa para construir una variedad de proveedores de coherencia de registros diferentes, todos siguiendo el mismo patrón básico (lectura y escritura de la vista más reciente de /a la principal y envío de notificaciones después de escribir). Tenga en cuenta que el propio registro es transitorio, es decir, no se guarda realmente en el almacenamiento, solo la vista más reciente y algunos metadatos (la posición del registro y las marcas de escritura) se almacenan en la principal. Es seguro intercalar llamadas a este adaptador (usando solo programador de granos, por supuesto). Las subclases invalidan ReadAsync y WriteAsync para leer de o escribir en principal. Las llamadas a la principal se serializan, es decir, nunca intercalar. |
LastConfirmedView() |
Lee el estado global almacenado en caché. |
MakeSubmissionEntry(TLogEntry) |
Cree una entrada de envío para la entrada de registro enviada. Usar un parámetro de tipo para poder agregar información específica del protocolo a esta clase. |
Merge(INotificationMessage, INotificationMessage) |
Combine dos mensajes de notificación para el procesamiento por lotes. Invalide para controlar los subtipos de notificación. |
NotifyPromises(Int32, Boolean) |
envío de notificaciones de error |
OnConfigurationChange(MultiClusterConfiguration) |
Se llama cuando cambia la configuración del clúster múltiple. |
OnMessageReceived(ILogConsistencyProtocolMessage) |
Controle los mensajes de protocolo. |
OnMessageReceived(ILogConsistencyProtocolMessage) |
Controle los mensajes de protocolo. |
OnMultiClusterConfigurationChange(MultiClusterConfiguration) |
Lo llama MultiClusterOracle cuando hay un cambio de configuración. |
OnNotificationReceived(INotificationMessage) |
Controle los mensajes de notificación. Invalide esto para controlar los subtipos de notificación. |
OnProtocolMessageReceived(ILogConsistencyProtocolMessage) |
Se llama desde la red |
OnProtocolMessageReceived(ILogConsistencyProtocolMessage) |
Se llama desde la red |
PostOnActivate() |
Plantilla general para construir adaptadores de vista de registro basados en una principal de lectura y escritura secuencial. Esto se usa para construir una variedad de proveedores de coherencia de registros diferentes, todos siguiendo el mismo patrón básico (lectura y escritura de la vista más reciente de /a la principal y envío de notificaciones después de escribir). Tenga en cuenta que el propio registro es transitorio, es decir, no se guarda realmente en el almacenamiento, solo la vista más reciente y algunos metadatos (la posición del registro y las marcas de escritura) se almacenan en la principal. Es seguro intercalar llamadas a este adaptador (usando solo programador de granos, por supuesto). Las subclases invalidan ReadAsync y WriteAsync para leer de o escribir en principal. Las llamadas a la principal se serializan, es decir, nunca intercalar. |
PostOnDeactivate() |
Se llama durante la desactivación, justo después de la definida por OnDeactivateAsync()el usuario. |
PreOnActivate() |
Se llama durante la activación, justo antes de la definida por OnActivateAsync()el usuario. |
ProcessNotifications() |
Procesar las notificaciones almacenadas durante el ciclo de trabajo. Invalide para controlar los subtipos de notificación. |
ReadAsync() |
Lea el estado principal más reciente. Debe bloquear o reintentar hasta que se realice correctamente. No debe producir excepciones, pero registrarlas en LastPrimaryIssue |
RemoveStaleConditionalUpdates() |
pasar por las actualizaciones y quitar todas las actualizaciones condicionales que ya han fallado |
RetrieveLogSegment(Int32, Int32) |
Plantilla general para construir adaptadores de vista de registro basados en una principal de lectura y escritura secuencial. Esto se usa para construir una variedad de proveedores de coherencia de registros diferentes, todos siguiendo el mismo patrón básico (lectura y escritura de la vista más reciente de /a la principal y envío de notificaciones después de escribir). Tenga en cuenta que el propio registro es transitorio, es decir, no se guarda realmente en el almacenamiento, solo la vista más reciente y algunos metadatos (la posición del registro y las marcas de escritura) se almacenan en la principal. Es seguro intercalar llamadas a este adaptador (usando solo programador de granos, por supuesto). Las subclases invalidan ReadAsync y WriteAsync para leer de o escribir en principal. Las llamadas a la principal se serializan, es decir, nunca intercalar. |
Submit(TLogEntry) |
Envíe una entrada de registro única para anexarse al registro global, ya sea en la posición actual o en cualquier posición posterior. |
SubmitRange(IEnumerable<TLogEntry>) |
Envíe un intervalo de entradas de registro que se van a anexar atómicamente al registro global, ya sea en la posición actual o en cualquier posición posterior. |
Synchronize() |
Obtenga la vista de registro más reciente y confirme todas las entradas enviadas. Espera hasta que todas las entradas enviadas previamente aparezcan en el prefijo confirmado del registro y fuerza una actualización del prefijo confirmado. |
TryAppend(TLogEntry) |
Intente anexar una sola entrada de registro en la posición actual del registro. |
TryAppendRange(IEnumerable<TLogEntry>) |
Intente anexar un intervalo de entradas de registro de forma atómica en la posición actual del registro. |
WriteAsync() |
Aplique entradas pendientes al servidor principal. Debe bloquear o reintentar hasta que se realice correctamente. No debe producir excepciones, pero registrarlas en LastPrimaryIssue |