Freigeben über


Dauerhaftigkeit in Orchestrierungen

Die Orchestrierungs-Engine speichert den gesamten Status einer Orchestrierungsinstanz an verschiedenen Dauerhaftigkeitspunkten, damit die Orchestrierungsinstanz aktiviert werden kann. Dieser Status umfasst neben Nachrichten und Variablen sämtliche .NET-basierten Komponenten, die in der Orchestrierung verwendet werden. Die Engine speichert den Status an folgenden Dauerhaftigkeitspunkten:

  • am Ende eines Transaktionsbereichs (atomarisch oder lang ausgeführt)

  • an Debughaltepunkten

  • bei der Ausführung weiterer Orchestrierungen durch die Form Orchestrierung starten

  • bei der Form Senden (außer in atomarischen Transaktionen)

  • beim Anhalten einer Orchestrierungsinstanz

  • beim kontrollierten Herunterfahren des Systems

  • wenn die Engine pausiert wird

  • beim Abschluss einer Orchestrierungsinstanz

    Die Engine optimiert die Anzahl an Dauerhaftigkeitspunkten, da diese umfassende Ressourcen in Anspruch nehmen, insbesondere beim Umgang mit großen Nachrichten. Im Folgenden werden zwei Orchestrierungsinstanzen dargestellt. In der Orchestrierung, in der sich die Formen Senden in einem atomarischen Bereich befinden, legt die Engine einen einzelnen Dauerhaftigkeitspunkt zwischen dem Ende des Transaktionsbereichs und dem Ende der Orchestrierung fest. In der anderen Orchestrierung sind zwei Dauerhaftigkeitspunkte vorhanden: einer für die erste Form Senden, der zweite für die Form Senden sowie das Ende der Orchestrierung.

    Orchestrierungspersistenz

    Orchestrierungspersistenz

    Sie müssen sämtliche .NET-basierten Objekte, die Sie direkt oder indirekt in Orchestrierungen verwenden, als serialisierbar markieren, sofern sie nicht in atomarischen Bereichen aufgerufen werden bzw. ohne Status sind und ausschließlich mit statischen Methoden aufgerufen werden. System.Xml. XmlDocument ist ein Sonderfall und muss unabhängig von der Transaktionseigenschaft für einen Bereich nicht als serialisierbar markiert werden.

    Wie funktioniert die spezielle Handhabung für System.Xml. XmlDocument-Arbeit :

    Wenn der Benutzer eine Variable X vom Typ T definiert, wobei TSystem.Xml ist. XmlDocument oder eine vonSystem.Xml abgeleitete Klasse . XmlDocumentbehandelt X dann als serialisierbares Objekt.

    Beim Serialisieren von X behält die Runtime die folgenden Informationen bei: (a) Der tatsächliche Typ Tr des Objekts X verweist auf (b) die OuterXml-Zeichenfolge des Dokuments.

    Beim Aufheben der Serialisierung von X erstellt die Runtime eine instance von Tr (dies setzt einen Konstruktor voraus, der keine Parameter akzeptiert) und ruft LoadXml auf, um die instance mit dem gespeicherten OuterXml bereitzustellen. X wird dann so festgelegt, dass es auf die neu erstellte instance von Tr zeigt.

Weitere Informationen

Transaktionen