Aufrufen von Funktionen und Prozeduren in Oracle Database mit BizTalk Server
Adapterclients können Funktionen und Prozeduren in einer Oracle-Datenbank aufrufen, indem sie den Oracle Database-Adapter mit BizTalk Server verwenden. Der Oracle Database-Adapter zeigt Prozeduren, Funktionen und Pakete als Vorgänge an. Mit dem Oracle Database-Adapter können Adapterclients außerdem Folgendes aufrufen:
Überladene Funktionen und gespeicherte Prozeduren. Weitere Informationen finden Sie unter Aufrufen überladener Funktionen und Prozeduren in Oracle Database mit BizTalk Server.
Funktionen und Prozeduren mit den Parametern IN, OUT und IN OUT REF CURSOR. Weitere Informationen finden Sie unter Aufrufen von Funktionen und Prozeduren mit REF CURSORS in Oracle Database mit BizTalk Server.
Funktionen und Prozeduren mit den Parametern "IN", "OUT" und "IN OUT RECORD". Weitere Informationen finden Sie unter Aufrufen von Funktionen und Prozeduren mit RECORD-Typen in Oracle Database mit BizTalk Server.
Weitere Informationen zum Arbeiten mit Funktionen und gespeicherten Prozeduren mithilfe des Oracle Database-Adapters finden Sie unter Vorgänge für Funktionen und gespeicherte Prozeduren in Oracle Database. Informationen zur Struktur der SOAP-Nachricht zum Aufrufen von Funktionen und Prozeduren finden Sie unter Nachrichtenschemas für Funktionen und Prozeduren.
Aufrufen von Funktionen in einer Oracle-Datenbank
Das Ausführen eines Vorgangs für eine Oracle-Datenbank mithilfe des Oracle Database-Adapters mit BizTalk Server umfasst prozedurale Aufgaben, die unter Bausteine zum Entwickeln von BizTalk-Anwendungen mit Oracle-Datenbank beschrieben sind. Um eine Funktion in einer Oracle-Datenbank aufzurufen, sind dies folgende Aufgaben:
Erstellen Sie ein BizTalk-Projekt, und generieren Sie ein Schema für die Funktion, die Sie in einer Oracle-Datenbank aufrufen möchten.
Erstellen Sie Nachrichten im BizTalk-Projekt zum Senden und Empfangen von Nachrichten aus der Oracle-Datenbank.
Erstellen Sie eine Orchestrierung, um die Funktion in der Oracle-Datenbank aufzurufen.
Erstellen und Bereitstellen des BizTalk-Projekts.
Konfigurieren Sie die BizTalk-Anwendung, indem Sie physische Sende- und Empfangsports erstellen.
Starten Sie die BizTalk-Anwendung.
Dieses Thema enthält Anweisungen zum Ausführen dieser Aufgaben.
Beispiel basierend auf diesem Thema
Das Auf diesem Thema basierende Beispiel InvokeFunction wird ebenfalls mit dem BizTalk Adapter Pack bereitgestellt. Weitere Informationen finden Sie unter Adapterbeispiele.
Generieren eines Schemas
Um in diesem Thema zu veranschaulichen, wie eine Funktion aufgerufen wird, rufen wir die CREATE_ACCOUNT-Funktion unter dem Schema SCOTT\Package\ACCOUNT_PKG auf. Dieses Paket wird unter dem SCOTT-Schema erstellt, indem die mit den Beispielen bereitgestellten SQL-Skripts ausgeführt werden. Die CREATE_ACCOUNT-Funktion berücksichtigt und adresst Informationen als Eingaben und erstellt Datensätze in den Tabellen ACCOUNT und CUSTOMER. Wenn der Datensatz bereits vorhanden ist, gibt die Funktion null zurück. Andernfalls gibt die Funktion die Konto-ID zurück. Weitere Informationen zu den Beispielen und den SQL-Skripts finden Sie unter Schemabeispiele.
Um die CREATE_ACCOUNT-Funktion aufzurufen, müssen wir ein Schema für dieselbe Funktion unter dem Schema SCOTT\Package\ACCOUNT_PKG generieren. Weitere Informationen zum Generieren eines Schemas finden Sie unter Abrufen von Metadaten für Oracle Database-Vorgänge in Visual Studio .
Definieren von Nachrichten und Nachrichtentypen
Das zuvor generierte Schema beschreibt die "Typen", die für die Nachrichten in der Orchestrierung erforderlich sind. Eine Nachricht ist in der Regel eine Variable, deren Typ durch das entsprechende Schema definiert wird. Sie müssen das schema, das Sie im ersten Schritt generiert haben, mit den Nachrichten aus dem Fenster Orchestrierungsansicht des BizTalk-Projekts verknüpfen.
Für dieses Thema müssen Sie zwei Nachrichten erstellen: eine, um eine Anforderung an die Oracle-Datenbank zu senden, und die andere, um eine Antwort zu erhalten.
Führen Sie die folgenden Schritte aus, um Nachrichten zu erstellen und sie mit dem Schema zu verknüpfen:
So erstellen Sie Nachrichten und verknüpfen mit dem Schema
Öffnen Sie das Fenster Orchestrierungsansicht des BizTalk-Projekts, wenn dieses nicht bereits geöffnet ist. Klicken Sie hierzu auf Ansicht, zeigen Sie auf Andere Fenster, und klicken Sie dann auf Orchestrierungsansicht.
Klicken Sie in der Orchestrierungsansicht mit der rechten Maustaste auf Nachrichten, und klicken Sie dann auf Neue Nachricht.
Klicken Sie mit der rechten Maustaste auf die neu erstellte Nachricht, und wählen Sie dann Eigenschaftenfenster aus.
Führen Sie im Bereich Eigenschaften für Message_1 die folgenden Schritte aus:
Option Aufgabe Bezeichner Geben Sie Request ein. Nachrichtentyp Erweitern Sie in der Dropdownliste Schemas, und wählen Sie dann InvokeFunction.OracleDBBindingSchema.CREATE_ACCOUNT aus, wobei InvokeFunction der Name Ihres BizTalk-Projekts ist. OracleDBBindingSchema ist das Schema, das für die funktion CREATE_ACCOUNT generiert wurde. Wiederholen Sie den vorherigen Schritt, um eine neue Nachricht zu erstellen. Gehen Sie im Bereich Eigenschaften für die neue Nachricht wie folgt vor:
Option Aufgabe Bezeichner Geben Sie Antwort ein. Nachrichtentyp Erweitern Sie in der Dropdownliste Schemas, und wählen Sie dann InvokeFunction.OracleDBBindingSchema.CREATE_ACCOUNTResponse aus.
Einrichten der Orchestrierung
Sie müssen eine BizTalk-Orchestrierung erstellen, um BizTalk Server zum Aufrufen von Funktionen in einer Oracle-Datenbank zu verwenden. In dieser Orchestrierung löschen Sie eine Anforderungsnachricht an einem definierten Empfangsspeicherort. Der Oracle Database-Adapter nutzt diese Nachricht und gibt sie über ODP an die Oracle-Datenbank weiter. Die Antwort aus der Oracle-Datenbank wird an einem anderen Speicherort gespeichert. Eine typische Orchestrierung zum Aufrufen von Funktionen und Prozeduren in einer Oracle-Datenbank enthält Folgendes:
Senden und Empfangen von Shapes, um Nachrichten an Oracle-Datenbank zu senden und Antworten zu empfangen.
Ein unidirektionale Empfangsport zum Empfangen von Anforderungsnachrichten, die an die Oracle-Datenbank gesendet werden sollen.
Ein bidirektionales Sendeport zum Senden von Anforderungsnachrichten an die Oracle-Datenbank und zum Empfangen von Antworten.
Ein unidirektionale Sendeport, um die Antworten aus der Oracle-Datenbank an einen Ordner zu senden.
Eine Beispielorchestrierung ähnelt der folgenden:
Hinzufügen von Nachrichten-Shapes
Stellen Sie sicher, dass Sie die folgenden Eigenschaften für die einzelnen Nachrichtenformen angeben. Die in der Spalte Shape aufgeführten Namen sind die Namen der Nachrichtenformen, die in der gerade erwähnten Orchestrierung angezeigt werden.
Form | Formtyp | Eigenschaften |
---|---|---|
ReceiveMessage | Empfangen | – Name aufReceiveMessage festlegen – Legen Sie Aktivieren auf True fest. |
SendMessage | Send | – Name aufSendMessage festlegen |
ReceiveResponse | Empfangen | – Name aufReceiveResponse festlegen – Legen Sie Aktivieren auf False fest. |
SendResponse | Send | – Name aufSendResponse festlegen |
Hinzufügen von Ports
Stellen Sie sicher, dass Sie die folgenden Eigenschaften für jeden der logischen Ports angeben. Die in der Spalte Port aufgeführten Namen sind die Namen der Ports, die in der Orchestrierung angezeigt werden.
Port | Eigenschaften |
---|---|
FileIn | – Festlegen des Bezeichners auf FileIn – Festlegen von Type auf FileInType - Festlegen des Kommunikationsmusters auf unidirektionales Muster - Festlegen der Kommunikationsrichtung auf Empfangen |
LOBPort | – Festlegen des Bezeichners auf LOBPort – Legen Sie Type auf LOBPortType fest. - Festlegen des Kommunikationsmusters auf Anforderungsantwort - Festlegen der Kommunikationsrichtung auf Senden/Empfangen |
SaveResponse | – Legen Sie Bezeichner auf SaveResponse fest. – Legen Sie Type auf SaveResponseType fest. - Festlegen des Kommunikationsmusters auf unidirektionales Muster - Kommunikationsrichtung auf Senden festlegen |
Angeben von Nachrichten für Aktions-Shapes und Verbinden mit Ports
Die folgende Tabelle gibt die Eigenschaften und deren Werte an, die Sie festlegen sollten, um Nachrichten für Aktionsformen anzugeben und die Nachrichten mit den Ports zu verknüpfen. Die in der Spalte Shape aufgeführten Namen sind die Namen der Nachrichtenformen, die in der zuvor erwähnten Orchestrierung angezeigt werden.
Form | Eigenschaften |
---|---|
ReceiveMessage | - Nachricht aufAnforderung festlegen – Festlegen des Vorgangs auf FileIn.Function.Request |
SendMessage | - Nachricht aufAnforderung festlegen – Festlegen von Operation auf LOBPort.Function.Request |
ReceiveResponse | – Nachricht aufAntwort festlegen – Festlegen von Operation auf LOBPort.Function.Response |
SendResponse | – Nachricht aufAntwort festlegen – Festlegen von Operation auf SaveResponse.Function.Request |
Nachdem Sie diese Eigenschaften angegeben haben, sind die Nachrichtenformen und -ports verbunden, und Die Orchestrierung ist abgeschlossen.
Sie müssen jetzt die BizTalk-Lösung erstellen und in einer BizTalk Server bereitstellen. Weitere Informationen finden Sie unter Erstellen und Ausführen von Orchestrierungen.
Konfigurieren der BizTalk-Anwendung
Nachdem Sie das BizTalk-Projekt bereitgestellt haben, wird die zuvor erstellte Orchestrierung im Bereich Orchestrierung in der BizTalk Server-Verwaltungskonsole aufgeführt. Sie müssen die BizTalk Server-Verwaltungskonsole verwenden, um die Anwendung zu konfigurieren. Eine exemplarische Vorgehensweise finden Sie unter Exemplarische Vorgehensweise: Bereitstellen einer einfachen BizTalk-Anwendung.
Das Konfigurieren einer Anwendung umfasst Folgendes:
Auswählen eines Hosts für die Anwendung.
Zuordnen der Ports, die Sie in Ihrer Orchestrierung erstellt haben, zu physischen Ports in der BizTalk Server-Verwaltungskonsole. Für diese Orchestrierung müssen Sie Folgendes ausführen:
Definieren Sie einen Speicherort auf der Festplatte und einen entsprechenden Dateiport, an dem Sie eine Anforderungsnachricht ablegen. Die BizTalk-Orchestrierung nutzt die Anforderungsnachricht und sendet sie an die Oracle-Datenbank.
Definieren Sie einen Speicherort auf der Festplatte und einen entsprechenden Dateiport, an dem die BizTalk-Orchestrierung die Antwortnachricht mit der Antwort aus der Oracle-Datenbank entfernt.
Definieren Sie einen physischen WCF-Custom oder WCF-OracleDB Sendeport, um Nachrichten an die Oracle-Datenbank zu senden. Sie müssen auch die Aktion im Sendeport angeben. Informationen zum Erstellen WCF-Custom oder WCF-OracleDB Ports finden Sie unter Manuelles Konfigurieren einer physischen Portbindung an den Oracle-Datenbankadapter.
Hinweis
Beim Generieren des Schemas mithilfe des BizTalk-Projekt-Add-Ins "Verbrauchadapterdienst" wird auch eine Bindungsdatei erstellt, die Informationen zu den Ports und den Aktionen enthält, die für diese Ports festgelegt werden sollen. Sie können diese Bindungsdatei aus der BizTalk Server-Verwaltungskonsole importieren, um Sendeports (für ausgehende Anrufe) zu erstellen oder Ports (für eingehende Anrufe) zu empfangen. Weitere Informationen finden Sie unter Konfigurieren einer physischen Portbindung mithilfe einer Portbindungsdatei für Oracle Database.
Starten der Anwendung
Sie müssen die BizTalk-Anwendung starten, um eine Funktion in einer Oracle-Datenbanktabelle aufrufen zu können. Anweisungen zum Starten einer BizTalk-Anwendung finden Sie unter Starten einer Orchestrierung.
Stellen Sie in dieser Phase Folgendes sicher:
Der FILE-Empfangsport zum Empfangen von Anforderungsmeldungen für die Orchestrierung wird ausgeführt.
Der FILE-Sendeport zum Empfangen der Antwortnachrichten von der Orchestrierung wird ausgeführt.
Der WCF-Custom oder WCF-OracleDB Sendeport zum Senden von Nachrichten an die Oracle-Datenbank wird ausgeführt.
Die BizTalk-Orchestrierung für den Vorgang wird ausgeführt.
Ausführen des Vorgangs
Nachdem Sie die Anwendung ausgeführt haben, müssen Sie eine Anforderungsnachricht an den FILE-Empfangsspeicherort ablegen. Das Schema für die Anforderungsnachricht muss dem Schema für die zuvor generierte Funktion entsprechen. Weitere Informationen zum Anforderungsmeldungsschema zum Aufrufen von Funktionen mithilfe des Oracle Database-Adapters finden Sie unter Nachrichtenschemas für Funktionen und Prozeduren .
Die Anforderungsmeldung zum Aufrufen der CREATE_ACCOUNT Funktion lautet beispielsweise:
<CREATE_ACCOUNT xmlns="http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Package/ACCOUNT_PKG">
<ACCT>
<ACCTID xmlns="http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Package/ACCOUNT_PKG/CREATE_ACCOUNT"></ACCTID>
<NAME xmlns="http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Package/ACCOUNT_PKG/CREATE_ACCOUNT">John Smith</NAME>
<BALANCE xmlns="http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Package/ACCOUNT_PKG/CREATE_ACCOUNT">10000</BALANCE>
</ACCT>
<ADDR>
<STREET xmlns="http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Package/ACCOUNT_PKG/CREATE_ACCOUNT">BelRed Road</STREET>
<CITY xmlns="http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Package/ACCOUNT_PKG/CREATE_ACCOUNT">Redmond</CITY>
<STATE xmlns="http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Package/ACCOUNT_PKG/CREATE_ACCOUNT">WA</STATE>
</ADDR>
</CREATE_ACCOUNT>
Die Orchestrierung nutzt die Nachricht und sendet sie an die Oracle-Datenbank. Die Antwort aus der Oracle-Datenbank wird am anderen FILE-Speicherort gespeichert, der als Teil der Orchestrierung definiert ist. Die Antwort der Oracle-Datenbank für die obige Anforderungsnachricht lautet beispielsweise:
\<?xml version="1.0" encoding="utf-8"?>
<CREATE_ACCOUNTResponse xmlns="http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Package/ACCOUNT_PKG">
<CREATE_ACCOUNTResult>[ID]</CREATE_ACCOUNTResult>
</CREATE_ACCOUNTResponse>
Dabei ist [ID] die ID des kontos, das von der Funktion erstellt wurde.
Mögliche Ausnahmen
Informationen zu den Ausnahmen, die beim Aufrufen von Funktionen und Prozeduren mithilfe von BizTalk Server auftreten können, finden Sie unter Ausnahmen und Fehlerbehandlung.
Bewährte Methoden
Nachdem Sie das BizTalk-Projekt bereitgestellt und konfiguriert haben, können Sie Konfigurationseinstellungen in eine XML-Datei namens bindungsdatei exportieren. Nachdem Sie eine Bindungsdatei generiert haben, können Sie die Konfigurationseinstellungen aus der Datei importieren, sodass Sie nicht die Sendeports, Empfangsports usw. für dieselbe Orchestrierung erstellen müssen. Weitere Informationen zu Bindungsdateien finden Sie unter Wiederverwenden von Oracle Database Adapter-Bindungen.
Weitere Informationen
Bausteine zum Entwickeln von BizTalk-Anwendungen mit Oracle Database