Optimistische Parallelität

In einem Multithread- und Mehrbenutzersystem wie Power Apps werden Vorgänge und Datenänderungen häufig parallel ausgeführt. Ein Problem entsteht, wenn zwei oder mehr Update- oder Löschvorgänge für dieselben Daten gleichzeitig ausgeführt werden. Dieser Fall kann möglicherweise zu Datenverlusten führen. Die optimistische Parallelität bietet Ihren Anwendungen die Möglichkeit zu erkennen, ob sich ein Tabellendatensatz auf dem Server in der Zeit zwischen dem Abruf des Datensatzes durch Ihre 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 feststellen, ob eine Tabelle optimistische Parallelität unterstützt, indem Sie die Metadaten der Tabelle mit Code abrufen oder die Metadaten mit dem Metadaten-Browser anzeigen und prüfen, ob die Spalte IsOptimisticConcurrencyEnabled auf true festgelegt ist. Für angepasste Tabellen ist diese Eigenschaft standardmäßig auf true festgelegt.

Aktivieren der optimistischen Parallelität

Sie können das Prüfverhalten der optimistischen Parallelität aktivieren, wenn Sie UpdateRequest ausführen, indem Sie die Eigenschaft ConcurrencyBehavior der Anforderung auf IfRowVersionMatches setzen. Entsprechend legen Sie für DeleteRequest die Eigenschaft ConcurrencyBehavior fest.

Wenn Sie den SDK für .NET-Kontext für Datenänderungen verwenden, legen Sie ConcurrencyBehavior für das Objekt OrganizationServiceContext fest. Dieser Wert wird an alle UpdateRequest- und DeleteRequest-Nachrichten weitergegeben, die von OrganizationServiceContext verwendet werden, wenn SaveChanges() aufgerufen wird.

Das optimistische Parallelitätsverhalten kann nur über einen SDK-API-Aufruf festgelegt werden. Es gibt momentan keine Einstellung dafür in Formularen der Webanwendung.

Anwendung der optimistischen Parallelität mit der Web-API

Informationen zur Nutzung der Web-API, um die optimistische Parallelität anzuwenden, finden Sie unter Optimistische Parallelität anwenden

Optimistische Parallelität mit dem SDK für .NET anwenden

Informationen zur Nutzung des SDK für .NET, um die optimistische Parallelität anzuwenden, finden Sie unter Verhalten der optimistischen Parallelität

Verarbeiten von Ausnahmen

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

  • ConcurrencyVersionMismatch (code=-2147088254)

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

  • ConcurrencyVersionNotProvided (code= -2147088253)

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

  • OptimisticConcurrencyNotEnabled (code=-2147088243)

    Wenn das IfVersionMatches Verhalten auf einem Update zu einer Tabelle anzeigt, und wenn optimistische Parallelität nicht aktiviert ist, wird ein Fehler zurückgegeben.

    Sie können die Code-Eigenschaft des zurückgegebenen Fehlers prüfen, um zu ermitteln, ob der Fehler mit der optimistischen Parallelität zusammenhängt. Die Codes für die oben Fehlerzustände werden oben angezeigt und stammen aus dem ErrorCodes.cs-Hilfscode.

Hinweis

Können Sie uns Ihre Präferenzen für die Dokumentationssprache mitteilen? Nehmen Sie an einer kurzen Umfrage teil. (Beachten Sie, dass diese Umfrage auf Englisch ist.)

Die Umfrage dauert etwa sieben Minuten. Es werden keine personenbezogenen Daten erhoben. (Datenschutzbestimmungen).