ReservationCollection Klasa

Definicja

Zarządza kolekcją rezerwacji miejsca w sekwencji rekordów.Manages the collection of space reservations made in a record sequence.

public ref class ReservationCollection abstract : System::Collections::Generic::ICollection<long>, System::Collections::Generic::IEnumerable<long>
public abstract class ReservationCollection : System.Collections.Generic.ICollection<long>, System.Collections.Generic.IEnumerable<long>
type ReservationCollection = class
    interface ICollection<int64>
    interface seq<int64>
    interface IEnumerable
Public MustInherit Class ReservationCollection
Implements ICollection(Of Long), IEnumerable(Of Long)
Dziedziczenie
ReservationCollection
Implementuje

Przykłady

Rezerwacje można wykonać na dwa sposoby, jak pokazano w poniższych przykładach.Reservations can be performed in two ways as shown in the following examples. Możesz zastosować praktyki w przykładach do niezawodnego przetwarzania.You can adopt the practices in the samples for robust processing. Należy zauważyć, że to zadanie można wykonać tylko w przypadku korzystania z klasy LogRecordSequence opartej na CLFS.Notice that this task can only be performed when using the CLFS-based LogRecordSequence class.

//Using the ReserveAndAppend Method  
ReservationCollection reservations = recordSequence.CreateReservationCollection();  
long[] lengthOfUndoRecords = new long[] { 1000 };  
recordSequence.ReserveAndAppend(recordData,  
                                                     userSqn,  
                                                     previousSqn,  
                                                     RecordSequenceAppendOptions.None,  
                                                     reservations,  
                                                     lengthOfUndoRecords);  
recordSequence.Append(undoRecordData,    // If necessary …  
                                    userSqn,  
                                    previousSqn,  
                                    RecordSequenceAppendOptions.ForceFlush,  
                                    reservations);  
  
// Using the Manual Approach  
ReservationCollection reservations = recordSequence.CreateReservationCollection();  
reservations.Add(lengthOfUndoRecord);  
try  
{  
   recordSequence.Append(recordData, userSqn, previousSqn, RecordAppendOptions.None);  
}  
catch (Exception)  
{  
   reservations.Remove(lengthOfUndoRecord);  
   throw;  
}  
  
recordSequence.Append(undoRecordData, userSqn, previousSqn, RecordAppendOptions.ForceFlush, reservations);  

Uwagi

Ta klasa reprezentuje zestaw obszarów rezerwacji, które są wykonywane w sekwencji rekordów.This class represents a set of reservation areas that are made in a record sequence. Dodawanie elementów do kolekcji przydziela nowe rezerwacje.Adding items to the collection allocates new reservations. Usunięcie elementów z kolekcji zwalnia te rezerwacje.Removing items from the collection frees those reservations.

Aplikacja rezerwuje miejsce w dzienniku, gdy ma dane, które mają zostać zapisane w dzienniku w przyszłości, ale nie mogą go natychmiast zapisać.An application reserves space in the log when it has data that is to be written to the log in the future, but cannot write it immediately. Rezerwacje zapewniają gwarancję, że dane mogą być zapisywane w dzienniku, gdy dane są dostępne do zapisania.Reservations provide a guarantee that the data can be written to the log when the data is available to be written. W przypadku korzystania z dzienników aplikacje często rezerwują co najmniej jeden rekord dziennika w obszarze organizowania.When using logs, applications often reserve one or more log records in a marshaling area. Przed dołączeniem rekordów należy zarezerwować rekordy.You must reserve records prior to appending them.

Rezerwacje mogą służyć do zagwarantowania, że operacja może zostać zakończona przed zatwierdzeniem danych; w przeciwnym razie zmiany są wycofywane.Reservations can be used to guarantee that an operation can be completed before the data is committed; otherwise, the changes are rolled back. Można go również użyć do rejestrowania "akcji cofania" w dzienniku.It can also be used to record an "undo action" in the log. Podczas operacji wycofywania, transakcyjny Menedżer zasobów (RM) musi mieć możliwość odzyskania stanu, jeśli RM zostanie przerwany podczas operacji wycofywania.During a rollback operation, a transactional resource manager (RM) must be able to recover its state if the RM is interrupted during the rollback operation. Za pomocą obszaru rezerwacja, Menedżer zasobów może zarezerwować miejsce w dzienniku przed jego użyciem.By using a reservation area, an RM can reserve space in a log before it is used.

ReserveAndAppend Metoda może zarezerwować miejsce lub dołączać dane albo w zależności od parametrów, które są określone podczas tworzenia wywołania.The ReserveAndAppend method can either reserve space or append data, or both, depending on the parameters that are specified when making the call. W miarę postępów prac w transakcji aplikacja może dołączyć informacje cofania i rezerwowe miejsce dla rekordów wynagrodzeń.As work progresses in a transaction, an application can append the undo information and reserve space for compensation records. Podczas operacji wycofywania tworzone rekordy wynagrodzeń wskazują, co zostało cofnięte na dysku.During a rollback operation, compensation records that are created indicate what has been undone on the disk. Rekordy są dołączane przy użyciu miejsca, które zostało wcześniej zarezerwowane.The records are appended using space that has been previously reserved. Gwarantuje to, że Menedżer zasobów nie wypróbuje miejsca w dzienniku, co jest krytycznym warunkiem podczas wykonywania operacji wycofywania.This guarantees that an RM does not run out of log space, which is a fatal condition, while performing a rollback operation. Jeśli dziennik zostanie wystawiony podczas transakcji, aplikacja może bezpiecznie wycofać transakcję bez uszkodzenia danych trwałych.If a log fills up during a transaction, an application can safely roll back a transaction without corrupting durable data.

CLFS to system rejestrowania zgodny z ARIES, przeznaczony do zapisu z wyprzedzeniem.CLFS is an ARIES-compliant logging system, meant for write-ahead logging. W przypadku rejestrowania z wyprzedzeniem aplikacja zapisuje rekord cofnięcia przed wykonaniem operacji, zachowując ilość miejsca, jaką zajmuje w dzienniku, aby napisać rekord kompensowania, który może być używany podczas wycofywania.In write-ahead logging, an application writes an undo record before it performs the operation, reserving the amount of space it takes in the log to write a compensating record, which may be used during rollback. Później zarezerwowane miejsce jest używane, gdy rekord wynagrodzeń zostanie rzeczywiście zapisany.Later, the reserved space is used when the compensation record is actually written.

Aplikacje mogą zarezerwować lub uzyskać dostęp do wolnego miejsca w dowolnym momencie (są to wzajemnie wykluczające się operacje).Applications can either reserve or access long space at any given time (they are mutually exclusive operations). Po zapisaniu rekordu zatwierdzania w dzienniku Aplikacja może zwolnić rezerwacje dla rekordów wynagrodzeń.After a commit record is written to the log, an application can free up the reservations for the compensation records. Tę akcję można wykonać przez wywołanie FreeReservation metody lub. ReserveAndAppendThis action can be done by calling either the FreeReservation or ReserveAndAppend method. Wywołanie metody gwarantuje, że operacja jest niepodzielna, podczas gdy FreeReservation wywołanie metody nie jest. ReserveAndAppendCalling the ReserveAndAppend method guarantees that the operation is atomic, while calling the FreeReservation method does not.

W przypadku bezpłatnych rekordów należy zwolnić te same rekordy, które zostały zarezerwowane we wcześniejszej wywołaniu ReserveAndAppend metody.When you free records, you must free the same records that you reserved together in a previous call to the ReserveAndAppend method.

Uwaga

Implementacja programu IRecordSequence musi MakeReservation implementować metody i FreeReservation do wykonywania rzeczywistej alokacji rezerwacji i cofania alokacji.Your implementation of IRecordSequence must implement the MakeReservation and FreeReservation methods to perform the actual reservation allocation and deallocation. Ponadto implementacja musi również wywołać ReservationFreed , gdy rekord jest zapisywana w zarezerwowanej przestrzeni.In addition, your implementation must also call ReservationFreed when a record is written into a reserved space.

Konstruktory

ReservationCollection()

Inicjuje nowe wystąpienie klasy ReservationCollection klasy.Initializes a new instance of the ReservationCollection class.

Właściwości

Count

Pobiera liczbę rezerwacji w kolekcji.Gets the number of reservations in the collection.

IsReadOnly

Pobiera wartość wskazującą, czy kolekcja jest tylko do odczytu.Gets a value that indicates whether the collection is read-only.

Metody

Add(Int64)

Alokuje rezerwację i dodaje ją do kolekcji.Allocates a reservation and adds it to the collection. Ta metoda nie może być dziedziczona.This method cannot be inherited.

Clear()

Zwalnia wszystkie rezerwacje w kolekcji.Releases all of the reservations in the collection. Ta metoda nie może być dziedziczona.This method cannot be inherited.

Contains(Int64)

Określa, czy została wprowadzona rezerwacja określonego rozmiaru.Determines whether a reservation of the specified size has been made. Ta metoda nie może być dziedziczona.This method cannot be inherited.

CopyTo(Int64[], Int32)

Kopiuje całą kolekcję do jednowymiarowej tablicy, rozpoczynając od określonego indeksu tablicy docelowej.Copies the entire collection to a one-dimensional array, starting at the specified index of the target array. Ta metoda nie może być dziedziczona.This method cannot be inherited.

Equals(Object)

Określa, czy określony obiekt jest równy bieżącemu obiektowi.Determines whether the specified object is equal to the current object.

(Odziedziczone po Object)
Finalize()

ReservationCollection Umożliwia zwolnienie zasobów przed ich zniszczeniem przez moduł wyrzucania elementów bezużytecznych.Allows the ReservationCollection to free resources before it is destroyed by the garbage collector.

FreeReservation(Int64)

Gdy jest zastępowany w klasie pochodnej, zwalnia rezerwację określonego rozmiaru.When overridden in a derived class, releases a reservation of the specified size.

GetBestMatchingReservation(Int64)

Gdy jest zastępowany w klasie pochodnej, pobiera najlepszą zgodną rezerwację dla danego rozmiaru.When overridden in a derived class, gets the best matching reservation for a given size.

GetEnumerator()

Zwraca moduł wyliczający, który może przechodzić przez ReservationCollection.Returns an enumerator that can iterate through the ReservationCollection. Ta metoda nie może być dziedziczona.This method cannot be inherited.

GetHashCode()

Służy jako domyślna funkcja skrótu.Serves as the default hash function.

(Odziedziczone po Object)
GetType()

Pobiera Type bieżącego wystąpienia.Gets the Type of the current instance.

(Odziedziczone po Object)
MakeReservation(Int64)

Gdy jest zastępowany w klasie pochodnej, przydziela rezerwację określonego rozmiaru.When overridden in a derived class, allocates a reservation of the specified size.

MemberwiseClone()

Tworzy skróconą kopię bieżącego Object.Creates a shallow copy of the current Object.

(Odziedziczone po Object)
Remove(Int64)

Zwalnia zastrzeżenie o określonym rozmiarze, jeśli zostało wykonane.Releases a reservation of the specified size, if one has been made. Ta metoda nie może być dziedziczona.This method cannot be inherited.

ReservationFreed(Int64)

Gdy jest zastępowany w klasie pochodnej, wskazuje, że rezerwacja została wydana.When overridden in a derived class, indicates that a reservation has been released.

ReservationMade(Int64)

Gdy jest zastępowany w klasie pochodnej, oznacza to, że została wprowadzona rezerwacja.When overridden in a derived class, indicates that a reservation has been made.

ToString()

Zwraca ciąg, który reprezentuje bieżący obiekt.Returns a string that represents the current object.

(Odziedziczone po Object)

Jawne implementacje interfejsu

IEnumerable.GetEnumerator()

Zwraca moduł wyliczający, który może przechodzić przez ReservationCollection.Returns an enumerator that can iterate through the ReservationCollection. Ta metoda nie może być dziedziczona.This method cannot be inherited.

Metody rozszerzania

CopyToDataTable<T>(IEnumerable<T>)

Zwraca DataTable, który zawiera kopie obiektów DataRow, przy użyciu obiektu wejściowego IEnumerable<T>, gdzie T parametru generycznego jest DataRow.Returns a DataTable that contains copies of the DataRow objects, given an input IEnumerable<T> object where the generic parameter T is DataRow.

CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption)

Kopiuje DataRow obiektów do określonego DataTable, używając obiektu wejściowego IEnumerable<T>, gdzie T parametru generycznego jest DataRow.Copies DataRow objects to the specified DataTable, given an input IEnumerable<T> object where the generic parameter T is DataRow.

CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption, FillErrorEventHandler)

Kopiuje DataRow obiektów do określonego DataTable, używając obiektu wejściowego IEnumerable<T>, gdzie T parametru generycznego jest DataRow.Copies DataRow objects to the specified DataTable, given an input IEnumerable<T> object where the generic parameter T is DataRow.

Cast<TResult>(IEnumerable)

Rzutuje elementy IEnumerable określonego typu.Casts the elements of an IEnumerable to the specified type.

OfType<TResult>(IEnumerable)

Filtruje elementy IEnumerable w oparciu o określony typ.Filters the elements of an IEnumerable based on a specified type.

AsParallel(IEnumerable)

Włącza przetwarzanie równoległe zapytania.Enables parallelization of a query.

AsQueryable(IEnumerable)

Konwertuje IEnumerable na IQueryable.Converts an IEnumerable to an IQueryable.

Ancestors<T>(IEnumerable<T>)

Zwraca kolekcję elementów, które zawierają elementy nadrzędne każdego węzła w kolekcji źródłowej.Returns a collection of elements that contains the ancestors of every node in the source collection.

Ancestors<T>(IEnumerable<T>, XName)

Zwraca przefiltrowany kolekcji elementów, które zawierają elementy nadrzędne każdego węzła w kolekcji źródłowej.Returns a filtered collection of elements that contains the ancestors of every node in the source collection. Kolekcja zawiera tylko elementy, które mają pasujące XName.Only elements that have a matching XName are included in the collection.

DescendantNodes<T>(IEnumerable<T>)

Zwraca kolekcję węzłów podrzędnych każdego dokumentu i elementu w kolekcji źródłowej.Returns a collection of the descendant nodes of every document and element in the source collection.

Descendants<T>(IEnumerable<T>)

Zwraca kolekcję elementów, które zawierają elementy podrzędne każdego elementu i dokumentu w kolekcji źródłowej.Returns a collection of elements that contains the descendant elements of every element and document in the source collection.

Descendants<T>(IEnumerable<T>, XName)

Zwraca przefiltrowany kolekcji elementów, które zawierają elementy podrzędne każdego elementu i dokumentu w kolekcji źródłowej.Returns a filtered collection of elements that contains the descendant elements of every element and document in the source collection. Kolekcja zawiera tylko elementy, które mają pasujące XName.Only elements that have a matching XName are included in the collection.

Elements<T>(IEnumerable<T>)

Zwraca kolekcję elementów podrzędnych każdego elementu i dokumentu w kolekcji źródłowej.Returns a collection of the child elements of every element and document in the source collection.

Elements<T>(IEnumerable<T>, XName)

Zwraca filtrowaną kolekcję elementów podrzędnych każdego elementu i dokumentu w kolekcji źródłowej.Returns a filtered collection of the child elements of every element and document in the source collection. Kolekcja zawiera tylko elementy, które mają pasujące XName.Only elements that have a matching XName are included in the collection.

InDocumentOrder<T>(IEnumerable<T>)

Zwraca kolekcję węzłów, która zawiera wszystkie węzły w kolekcji źródłowej, posortowane w kolejności dokumentu.Returns a collection of nodes that contains all nodes in the source collection, sorted in document order.

Nodes<T>(IEnumerable<T>)

Zwraca kolekcję węzłów podrzędnych każdego dokumentu i elementu w kolekcji źródłowej.Returns a collection of the child nodes of every document and element in the source collection.

Remove<T>(IEnumerable<T>)

Usuwa każdy węzeł w kolekcji źródłowej z węzła nadrzędnego.Removes every node in the source collection from its parent node.

Dotyczy