1. UseAmbientTransaction mit BizTalk OracleDB Adapter
Wenn man in BizTalk für die Kommunikation mit Oracle Transaktionen verwenden will, muss der WCF-OracleDB Adapter im Send Port oder in der Receive Location verwendet werden und dort in der Konfiguration im Reiter Messages unter Transactions die Option Use Transaction angewählt werden und im Reiter Binding muss der Parameter UseAmbientTransaction auf True gestellt sein.
Use Transactions (nur bei Send Port):
UseAmbientTransaction:
1.1. UseAmbientTransaction kann nicht auf True gestellt werden
Wie eben beschrieben, scheint das Einrichten eines Oracle Ports für die Verwendung von Transaktionen eine einfache Sache zu sein – aber nicht immer: wenn ein neuer Send Port mit dem WCF-OracleDB Adapter erstellt wird, ist der Parameter UseAmbientTransaction standardmässig auf True gesetzt. Wenn man aber in einem bestehenden Port, der mit einer Migration von einer älteren BizTalk Version mitkam, den Parameter UseAmbientTransaction von False auf True ändern will, kann es sein, dass man beim Versuch, die Änderung zu speichern, folgenden Fehler bekommt:
1.2. Lösungsansatz
Da sich bei einem migrierten Port mit Oracle Adapter UseAmbientTransaction nicht über die gewohnte Oberfläche konfigurieren lässt, kann dies beispielsweise über den nachstehend beschriebenen Weg vollzogen werden
1.2.1. Konfiguration über Export/Import Binding
Die Option UseAmbientTransaction für einen migrierten Port mit Oracle Adapter kann gesetzt werden, indem die Bindings Informationen für eine Applikation, in der dieser Port verwendet wird, editiert und dann importiert werden.
1.2.1.1. Export Bindings
Der erste Schritt ist der Export der Bindings. Rechtsklick auf die gewünschte Applikation, dann aus dem Kontextmenü Export Bindings… auswählen:
In der Dialogbox Export Bindings: [Application Name] kann im Textfeld Export to File: Das gewünschte Zielverzeichnis ausgewählt und der Dateiname angegeben werden und um das Bindings File so übersichtlich wie möglich zu halten, empfiehlt es sich, die Option Export bindings for the selected assembly anzuwählen und dann in der Drop‑Box ein Assembly zu selektieren, in welchem der zu bearbeitende Port verwendet wird und OK klicken:
1.2.1.2. Editieren des Bindings Files
Im eben exportierten File kann der Parameter useAmbientTransaction nun manuell editiert und auf true gesetzt werden.
1. Das eben exportierte Bindings File in einem Texteditor öffnen und dort in der entsprechenden Collection den zu bearbeitenden Port suchen:
Hier ist es ein Send Port in der SendPortCollection und er heißt SP.Oracle
2. Unter TransportTypeData den Parameter useAmbientTransaction suchen – der steht auf false:
(Screenshot gestaucht)
3. Bei useAmbientTransaction nun einfach false mit true überschreiben und die Datei sichern:
1.2.1.3. Importieren des Bindings Files
Die geänderte Konfiguration kann jetzt mit dem Binding File importiert werden.
1. Rechtsklick auf die Application, von der das Binding File exportiert worden ist und im Kontext Menu Import Bindings… auswählen:
2. In dem Import Bindings Dialogfenster unter Select binding file das eben editierte Bindings File anwählen und OK klicken:
In der Konfiguration des bearbeiteten Ports steht jetzt unter Binding der Parameter UseAmbientTransaction auf true.
Dies ist ein Beitrag von Robert Cavigelli, Lead Developer, QUIBIQ Schweiz AG.