Mit dem Assistenten 'Neue Nachrichtendefinitionsdatei' im WebSphere Message
Broker Toolkit kann aus einer IDL-Datei eine Nachrichtendefinition erstellt werden.
Bevor Sie beginnen:Führen Sie folgende Task aus:
- Nachrichtengruppen: Nachrichtengruppe erstellen
- Dateien aus dem Dateisystem in das WebSphere Message Broker Toolkit importieren
- Vergewissern Sie sich, dass Sie über eine gültige IDL-Datei verfügen. Wenn Sie eine ungültige IDL-Datei auswählen, wird eine Fehlernachricht ausgegeben und der Assistent kann nicht ausgeführt werden. Beim Import einer IDL-Datei werden unterstützte und nicht unterstützte Operationen aufgelistet. Sie können zwar eine IDL-Datei importieren, die Operationen mit Typen enthält, die nicht von WebSphere Message
Broker unterstützt werden, wenn Sie aber versuchen, eine nicht unterstützte Operation aufzurufen, erhalten Sie eine Fehlernachricht. In der CORBA-IDL-Datei muss mindestens eine Schnittstelle mit einer Operation vorhanden sein. Weitere Informationen zu unterstützten IDL-Operationen finden Sie im Abschnitt CORBA-Unterstützung.
- Weitere Informationen zu den Entsprechungen zwischen IDL-Typen und XML-Schematypen finden Sie im Abschnitt IDL-Datentypen.
Im Folgenden wird beschrieben, wie unter Verwendung einer IDL-Datei eine Nachrichtendefinitionsdatei erstellt bzw. der Inhalt einer vorhandenen Datei überschrieben werden kann.
- Klicken Sie mit der rechten Maustaste auf die Nachrichtengruppe und anschließend auf , um den Assistenten Neue Nachrichtendefinitionsdatei zu öffnen.
- Durchlaufen Sie den Assistenten und beachten Sie dabei die Bildschirmanweisungen.
- Wählen Sie in der Liste der Dateien im Arbeitsbereich eine IDL-Datei aus oder suchen Sie mit der Option
Durchsuchen außerhalb des Arbeitsbereichs nach einer IDL-Datei. Wenn Sie eine IDL-Datei importiert haben, die "Includes" (Einschlüsse) enthält, wählen Sie die IDL-Datei der höchsten Ebene aus.
- Achten Sie darauf, dass das Kontrollkästchen zum Hinzufügen der DataObject-Domäne zu der Nachrichtengruppe ausgewählt ist. Dieses Kontrollkästchen ist standardmäßig aktiviert.
- Optional: Sie können auch einen Ziel-Namespace angeben.
- Standardmäßig ist der Name der Nachrichtendefinitionsdatei mit dem Namen der IDL-Datei identisch. Sie können den Namen der Nachrichtendefinitionsdatei auch ändern.
- Ist die IDL-Datei bzw. die Nachrichtendefinitionsdatei vorhanden, klicken Sie auf Nächste.
Wählen Sie vorhandene Dateien aus, falls Sie sie umbenennen oder überschreiben möchten.
- Klicken Sie auf Finish (Fertigstellen).
- Prüfen Sie nach dem Import der IDL-Datei, ob Fehler aufgetreten sind.
- Prüfen Sie hierfür den Bericht, der beim Dateiimport erstellt wird. Dieser Bericht befindet sich im Verzeichnis log des Projekts, in dem die neue Nachrichtendefinition enthalten ist. Der Bericht trägt die Bezeichnung <Name-der-IDL-Datei>.idl.report.txt, dabei bezeichnet <Name-der-IDL-Datei> den Namen der zu importierenden IDL-Datei.
- Prüfen Sie, ob in der Taskliste im WebSphere Message
Broker Toolkit Fehler aufgeführt sind.
Nach erfolgtem Import der IDL-Datei wird die Nachrichtendefinition geöffnet. Im Ordner CORBA IDLs wird eine schreibgeschützte Kopie der IDL-Datei gespeichert.
Für jede IDL-Datei wird eine eigene Nachrichtendefinition erstellt. (Wenn Sie eine IDL-Datei importiert haben, die "Includes" (Einschlüsse) enthält, werden alle Elemente und Typen der eingeschlossenen IDL-Dateien in einer gemeinsamen Nachrichtendefinition generiert.)
In der Nachrichtendefinition werden für jede Operation der IDL-Datei zwei Nachrichten erstellt (eine Nachricht für die Anforderung und eine für die Antwort). Ebenso wird für jede benutzerdefinierte Ausnahmebedingung eine Nachricht erstellt. In der Anforderung gibt es für jeden in- und inout-Parameter ein untergeordnetes Element. In der Antwort gibt es für jeden inout- und out-Parameter ein untergeordnetes Element sowie ein untergeordnetes Element
mit der Bezeichnung “_return” für den Rückgabetyp der Operation.
Die Namen dieser Elemente werden aus dem Schnittstellen- und dem Operationsnamen gebildet. So lautet beispielsweise für die Operation
sayHello in der Schnittstelle Hello das Anforderungselement Hello.sayHello und das
Antwortelement Hello.sayHelloResponse.
Wenn die Schnittstelle in einem Modul enthalten ist, werden die Namen des Anforderungs- und des Antwortelements mit dem Namen des Moduls qualifiziert. Befindet sich die Operation sayHello in der Schnittstelle Hello beispielsweise in ModuleB, das wiederum in 'ModuleA' enthalten ist, würde das Antwortelement wie folgt lauten: ModuleA.ModuleB.Hello.sayHelloResponse.
Eine weitere Nachrichtendefinition mit einer Nachricht für jede CORBA-Systemausnahme wird erstellt.
Nächster Schritt: Entwickeln Sie einen Nachrichtenfluss, wie im Abschnitt
Nachrichtenfluss mit einem CORBARequest-Knoten entwickeln beschrieben.