LogRecordSequence.AdvanceBaseSequenceNumber(SequenceNumber) Método

Definición

Avanza el número de secuencia base del registro. Este método no se puede heredar.

public:
 virtual void AdvanceBaseSequenceNumber(System::IO::Log::SequenceNumber newBaseSequenceNumber);
public void AdvanceBaseSequenceNumber (System.IO.Log.SequenceNumber newBaseSequenceNumber);
abstract member AdvanceBaseSequenceNumber : System.IO.Log.SequenceNumber -> unit
override this.AdvanceBaseSequenceNumber : System.IO.Log.SequenceNumber -> unit
Public Sub AdvanceBaseSequenceNumber (newBaseSequenceNumber As SequenceNumber)

Parámetros

newBaseSequenceNumber
SequenceNumber

Especifica la nueva SequenceNumber base para el registro. Esto debe quedar en el intervalo entre el número de secuencia base actual y el último número de secuencia de registro, ambos incluidos.

Implementaciones

Excepciones

newBaseSequenceNumber no es válido para esta secuencia.

Una cola de archivo nueva o existente o la base del registro activo no son válidas.

o bien

newBaseSequenceNumber no está entre la base y últimos números de secuencia de esta secuencia.

La solicitud no se pudo realizar debido a una excepción de E/S inesperada.

o bien

La solicitud no se pudo realizar debido a un error de dispositivo de E/S.

El registro especificado no tiene ninguna extensión. Se han de crear una o más extensiones antes de que se pueda utilizar una secuencia de registro.

Se llamó al método una vez eliminada la secuencia.

No hay bastante memoria para continuar la ejecución del programa.

El sistema operativo ha denegado el acceso a la secuencia de registro especificado.

La secuencia del registro está completa.

Ejemplos

Este ejemplo muestra cómo utilizar el método AdvanceBaseSequenceNumber con el evento TailPinned para liberar espacio en una secuencia de registro.

recordSequence.RetryAppend = true;  
recordSequence.TailPinned += new EventHandler<TailPinnedEventArgs>(HandleTailPinned);  

void HandleTailPinned(object sender, TailPinnedEventArgs tailPinnedEventArgs)  
{  
   // tailPinnedEventArgs.TargetSequenceNumber is the target   
   // sequence number to free up space to.    
   // However, this sequence number is not necessarily valid.  We have  
   // to use this sequence number as a starting point for finding a  
   // valid point within the log to advance toward. You need to  
   // identify a record with a sequence number equal to, or greater  
   // than TargetSequenceNumber; let's call this   
   // realTargetSequenceNumber. Once found, move the base  

   recordSequence.AdvanceBaseSequenceNumber(realTargetSequenceNumber);  

}  

Comentarios

Este método se utiliza a menudo con el evento TailPinned para liberar espacio en un registro. El evento TailPinned indica que es necesario mover hacia delante la cola de la secuencia (es decir, el número de secuencia base) para liberar espacio. Para liberar espacio se pueden escribir áreas de reinicio mediante el método WriteRestartArea, o mediante el truncado del registro y el uso del método AdvanceBaseSequenceNumber para avanzar el número de secuencia base de un registro hasta el especificado mediante el parámetro newBaseSequenceNumber. El ejemplo de código en la sección Ejemplo muestra el segundo enfoque.

Observe que llamar a este método es igual que establecer un nuevo número de secuencia base mediante el método WriteRestartArea, salvo que no se escribe ninguna entrada de reinicio en el registro.

Se aplica a