Kausale Reihenfolge asynchroner Aufrufe

In einer asynchronen RPC-Anwendung ist es für einen Clientthread möglich, einen zweiten asynchronen Aufruf eines Bindungshandles durchzuführen, bevor ein früherer Aufruf dieses Handles abgeschlossen wurde. Die RPC-Laufzeitbibliothek behandelt diese Situation wie folgt:

  • Der asynchrone RPC-Mechanismus garantiert, dass asynchrone Aufrufe, die auf demselben Bindungshandle im selben Thread auf derselben Sicherheitsebene ausgeführt werden, in der Reihenfolge erfolgen, in der sie ausgeführt wurden. Die tatsächliche Ausführung der Aufrufe kann in einer anderen Reihenfolge erfolgen.
  • Wie bei synchronen Aufrufen werden asynchrone Remoteprozeduraufrufe von verschiedenen Clientthreads gleichzeitig ausgeführt.
  • Wenn einem asynchronen Aufruf von einer Clientanwendung ein oder mehrere synchrone Aufrufe folgen, kann der asynchrone Aufruf ausgeführt werden, während die synchronen Aufrufe ausgeführt werden. Unabhängig von der status des asynchronen Aufrufs werden die synchronen Aufrufe in der Reihenfolge ausgeführt, in der sie vom Server empfangen werden.
  • Wenn eine Clientanwendung eine nicht zufällige Reihenfolge für ein bestimmtes Bindungshandle auswählt, deaktiviert sie die Serialisierung für dieses Handle. Anwendungen ermöglichen eine nicht zufällige Reihenfolge, indem rpcBindingSetOption aufgerufen wird, wobei der Parameter Option auf RPC_C_OPT_BINDING_NONCAUSAL und der Parameter OptionValue auf TRUE festgelegt ist. Weitere Informationen finden Sie unter Bindungsoptionskonstanten.