Freigeben über


Optimistische Parallelität

In einem Multithread- und Multibenutzersystem wie Power Apps treten Vorgänge und Datenänderungen häufig parallel auf. Ein Problem tritt auf, wenn zwei oder mehr Aktualisierungs- oder Löschvorgänge auf demselben Datenabschnitt gleichzeitig auftreten. Diese Situation könnte zu Datenverlust führen. Das optimistische Parallelitätsfeature ermöglicht es Ihren Anwendungen zu erkennen, ob sich ein Tabellendatensatz auf dem Server in der Zeit zwischen dem Abrufen des Datensatzes durch die Anwendung und dem Versuch, diesen Datensatz zu aktualisieren oder zu löschen, geändert hat.

Optimistische Parallelität wird bei allen standardmäßigen Tabellen, die für die Offline-Synchronisierung aktiviert sind, und bei allen angepassten Tabellen unterstützt. Sie können ermitteln, ob eine Tabelle optimistische Parallelität unterstützt, indem Sie die Metadaten der Tabelle mithilfe von Code abrufen oder die Metadaten mithilfe des Metadatenbrowsers anzeigen und überprüfen, ob die Spalte IsOptimisticConcurrencyEnabled auf festgelegt trueist. Bei benutzerdefinierten Tabellen ist die Eigenschaft standardmäßig auf true festgelegt.

Optimistische Parallelität aktivieren

Sie können ein optimistisches Parallelitätsüberprüfungsverhalten aktivieren, wenn Sie eine UpdateRequest Aktion ausführen, indem Sie die ConcurrencyBehavior Eigenschaft der Anforderung auf IfRowVersionMatchesfestlegen. Ebenso würden Sie für ein DeleteRequestObjekt die ConcurrencyBehavior Eigenschaft festlegen.

Wenn Sie das SDK im .NET-Kontext verwenden, um Datenänderungen vorzunehmen, setzen Sie ConcurrencyBehavior auf das OrganizationServiceContext-Objekt. Dieser Wert wird an alle vom OrganizationServiceContext verwendeten UpdateRequest- und DeleteRequest-Nachrichten übergeben, wenn SaveChanges() sie aufgerufen werden.

Optimistisches Parallelitätsverhalten kann nur über einen SDK-API-Aufruf festgelegt werden. Es gibt derzeit keine Einstellung dafür in Form der Webanwendung.

Anwenden optimistischer Parallelität mithilfe der Web-API

Informationen zur Verwendung der Web-API zum Anwenden optimistischer Parallelität finden Sie unter "Optimistische Parallelität anwenden"

Anwendung der optimistischen Parallelität mithilfe des SDK für .NET

Informationen zum Verwenden des SDK für .NET zum Anwenden optimistischer Parallelität finden Sie unter "Optimistisches Parallelitätsverhalten".

Verarbeiten von Ausnahmen

Es gibt mehrere Fehlerbedingungen, die in einer Fehlerausnahme <OrganizationServiceFault> von einem Webdienstaufruf zurückgegeben werden können, wenn optimistische Parallelität verwendet wird.

  • ConcurrencyVersionMismatch (code=-2147088254)

    Wenn eine Zeilenversion bereitgestellt wird und das IfVersionMatches-Verhalten angegeben wird, wird ein Fehler zurückgegeben, wenn die Version des vorhandenen Datensatzes nicht mit der Zeilenversion übereinstimmt, die in der Anforderung bereitgestellt wird.

  • ConcurrencyVersionNotProvided (Code= -2147088253)

    Wenn das IfVersionMatches-Verhalten angegeben ist und kein Wert für die Zeilenversion angegeben wird, wird ein Fehler zurückgegeben.

  • OptimisticConcurrencyNotEnabled (code=-2147088243)

    Wenn das IfVersionMatches-Verhalten für eine Aktualisierung einer Tabelle angegeben ist und optimistische Parallelität nicht aktiviert ist, wird ein Fehler zurückgegeben.

    Sie können die Code-Eigenschaft des zurückgegebenen Fehlers überprüfen, um festzustellen, ob der Fehler mit optimistischer Parallelität verbunden ist. Die Codes für die zuvor angezeigten Fehlerbedingungen wurden aus dem ErrorCodes.cs Hilfscode abgerufen.