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.