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).