Freigeben über


Implementierungsdetails für den Ops-Adapter

Es kann sinnvoll sein, sich mit den folgenden Aspekten des Ops-Adapters vertraut zu machen, wenn dieser geändert oder programmgesteuert konfiguriert werden soll.

Hinweis

Der Ops-Adapter wird mithilfe des Adapterframeworks erstellt. Informationen zum Erstellen von Adaptern mit dem Framework finden Sie unter Entwickeln benutzerdefinierter Adapter.

Batchverarbeitung

Der Adapter verarbeitet jeweils nur eine Nachricht gleichzeitig, sodass jede Nachricht separat verarbeitet wird, und Rollbackvorgänge werden nur für eine Bestellung gleichzeitig ausgeführt. Obwohl der Adapter nur eine Nachricht gleichzeitig verarbeitet, geschieht dies in einer Batchverarbeitung mit einer Batchgröße von eins. Auf diese Weise kann der Adapter einfacher für die Verarbeitung von Nachrichten in Batches geändert werden.

Verarbeiten von Transaktionen

Der Adapter verwendet die Transaktionsfunktionen, die von den Microsoft .NET Framework System.Transactions-Einrichtungen bereitgestellt werden. Der Adapter erstellt eine neue CommittableTransaction und verwendet sie mit einem TransactionScope. Der Adapter ruft die Methoden Initialize und Execute im Kontext dieser Transaktion auf. Code in der aufgerufenen Assembly kann mit der statischen Transaction.Current-Methode an der Transaktion teilnehmen, um den Transaktionskontext abzurufen. Der Beispielfehlerhandler verwendet diese Funktion nicht. Weitere Informationen zu System.Transactions finden Sie unter "System.Transactions Namespace" in der version der .NET Framework-Klassenbibliothek.

Verarbeitung anderer Daten als Fehlerberichte

In der Lösung verarbeitet der Adapter Fehlerberichtnachrichten aus dem neuen Fehlerberichtfeature. Da die Execute-Methode jedoch ein Bytearray als einziges Argument annimmt, gibt es nichts, das speziell einschränkt, was an die Execute-Methode übergeben werden kann.

Verwenden des Adapters beim programmgesteuerten Erstellen von Ports

Sie können den Adapter angeben, wenn Sie die Ports mithilfe von Code erstellen. In der folgenden Tabelle werden die benutzerdefinierten Eigenschaftennamen und ihre Zuordnung zu den Anzeigenamen aufgeführt.

Benutzerdefinierter Eigenschaftenname Senden Anzeigename
DotNetAssemblyStrongName DotNetAssemblyStrongName
DotNetClassName DotNetClassName
InitializationData InitializationData
TransportLocationUri Nicht zutreffend.

Alle Eigenschaften sind Zeichenfolgewerte. Sie erstellen den Wert der Eigenschaft TransportLocationUri aus dem Assemblynamen und dem Klassennamen. Der URI hat den Wert OPS://< DotNetAssemblyStrongName>/<DotNetClassName> , wobei die Platzhalter durch die Werte der entsprechenden benutzerdefinierten Eigenschaft ersetzt werden.

Informationen zum Erstellen von Ports aus Code finden Sie unter Erstellen von MSMQ-Empfangsspeicherorten und Senden von Ports aus Code.

Weitere Informationen

Der Ops-Adapter