Sie können Container-Server von WebSphere eXtreme Scale mit
einer OSGi-Blueprint-XML-Datei konfigurieren, was das Packen und die Entwicklung eigenständiger
Server-Bundles vereinfacht.
Vorbereitende Schritte
In diesem Artikel wird davon ausgegangen, dass die folgenden Aufgaben ausgeführt wurden:
- Das Eclipse-Equinox-OSGi-Framework wurde installiert und mit dem
Eclipse-Gemini- oder Apache-Aries-Blueprint-Container gestartet.
- Das eXtreme-Scale-Server-Bundle wurde installiert und gestartet.
- Das Bundle mit den dynamischen eXtreme-Scale-Plug-ins wurde erstellt.
- Die ObjectGrid-XML-Deskriptordatei und die XML-Implementierungsrichtliniendatei von eXtreme Scale
wurden erstellt.
Informationen zu diesem Vorgang
In dieser Aufgabe wird beschrieben, wie Sie einen eXtreme-Scale-Server mit einem Container
über eine Blueprint-XML-Datei konfigurieren. Das Ergebnis dieser Prozedur ist ein Container-Bundle.
Wenn das Container-Bundle gestartet wird, überwacht das eXtreme-Scale-Server-Bundle das Bundle, parst die
Server-XML und startet Server und Container.
Ein Container-Bundle kann optional mit der Anwendung und den eXtreme-Scale-Plug-ins kombiniert werden,
wenn dynamische Plug-in-Aktualisierungen nicht erforderlich sind oder die Plug-ins keine dynamische Aktualisierung
unterstützen.
Vorgehensweise
- Blueprint-XML-Datei mit eingeschlossenem objectgrid-Namespace
erstellen. Sie können die Datei beliebig nennen. Sie muss jedoch den Blueprint-Namespace enthalten.
<?xml version="1.0" encoding="UTF-8"?>
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance
xmlns:objectgrid="http://www.ibm.com/schema/objectgrid"
xsi:schemaLocation="http://www.ibm.com/schema/objectgrid
http://www.ibm.com/schema/objectgrid/objectgrid.xsd">
...
</blueprint>
- XML-Definition für den eXtreme-Scale-Server mit den entsprechenden Servereigenschaften hinzufügen. Einzelheiten zu allen verfügbaren Konfigurationseigenschaften finden Sie in der Spring-XML-Deskriptordatei.
Sehen Sie sich das folgende XML-Definitionsbeispiel an:
<objectgrid:server id="xsServer" tracespec="ObjectGridOSGi=all=enabled"
tracefile="logs/osgi/wxsserver/trace.log" jmxport="1199" listenerPort="2909">
<objectgrid:catalog host="catserver1.mycompany.com" port="2809" />
<objectgrid:catalog host="catserver2.mycompany.com" port="2809" />
</objectgrid:server>
- XML-Definition für den eXtreme-Scale-Container mit der Referenz auf
die Serverdefinition sowie die im Bundle integrierten ObjectGrid-XML-Deskriptor- und ObjectGrid-XML-Implementierungsdateien
hinzufügen, z. B.:
<objectgrid:container id="container"
objectgridxml="/META-INF/objectGrid.xml"
deploymentxml="/META-INF/objectGridDeployment.xml"
server="xsServer" />
- Blueprint-XML-Datei im Container-Bundle speichern. Die Blueprint-XML-Dateimuss im Verzeichnis OSGI-INF/blueprint gespeichert werden,
damit der Blueprint-Container gefunden wird.
Wenn Sie die Blueprint-XML-Datei in einem anderen Verzeichnis speichern möchten, müssen Sie den
Manifestheader "Bundle-Blueprint" angeben, z. B.:
Bundle-Blueprint: OSGI-INF/blueprint.xml
- Dateien in eine einzige Bundle-JAR-Datei packen. Sehen Sie sich das folgende Beispiel für eine Bundleverzeichnishierarchie an:
MyBundle.jar
/META-INF/manifest.mf
/META-INF/objectGrid.xml
/META-INF/objectGridDeployment.xml
/OSGI-INF/blueprint/blueprint.xml
Ergebnisse
Es wurde ein eXtreme-Scale-Container-Bundle erstellt, das in Eclipse Equinox installiert werden kann.
Wenn das Container-Bundle gestartet wird,
startet die Laufzeitumgebung des eXtreme-Scale-Servers
automatisch den eXtreme-Scale-Singleton-Server mit den im Bundle definierten
Parametern und startet einen Container-Server.
Das Bundle kann gestoppt und gestartet werden, was dazu führt, dass der Container gestoppt bzw. gestartet wird.
Der Server ist ein Singleton und wird nicht gestoppt, wenn das Bundle zum ersten Mal gestartet wird.