Implementieren von OSGi-Bundles auf einem JVM-Server

Um eine Java™-Anwendung auf einem JVM-Server zu implementieren, müssen Sie die OSGi-Bundles der Anwendung im OSGi-Framework des JVM-Zielservers installieren.

Vorbereitende Schritte

Das CICS-Bundle, das die OSGi-Bundles für die Anwendung enthält, muss im z/OS-Dateisystem implementiert werden. Der JVM-Zielserver muss in der CICS-Region aktiviert sein.

Informationen zu diesem Vorgang

Ein CICS-Bundle kann ein oder mehrere OSGi-Bundles enthalten. Da das CICS-Bundle die Implementierungseinheit bildet, werden alle OSGi-Bundles gemeinsam als Teil der BUNDLE-Ressource verwaltet. Das OSGi-Framework verwaltet auch den Lebenszyklus der OSGi-Bundles einschließlich Management der Abhängigkeiten und Versionssteuerung.

Alle OSGi-Bundles, die eine Java-Anwendungskomponente bilden, müssen in einem CICS-Bundle implementiert werden. Wenn Abhängigkeiten zwischen OSGi-Bundles bestehen, implementieren Sie diese im selben CICS-Bundle. Wenn Sie die CICS-BUNDLE-Ressource installieren, stellt CICS sicher, dass alle Abhängigkeiten zwischen den OSGi-Bundles aufgelöst werden.

Wenn Abhängigkeiten von einem OSGi-Bundle bestehen, das eine Bibliothek mit einheitlichem Code enthält, erstellen Sie ein separates CICS-Bundle für die Bibliothek. In diesem Fall ist es wichtig, dass die CICS-BUNDLE-Ressource, in der die Bibliothek enthalten ist, zuerst installiert wird. Wenn Sie die Java-Anwendung vor den CICS-Bundles installieren, von denen sie abhängig ist, kann das OSGi-Framework die Abhängigkeiten der Java-Anwendung nicht auflösen.

Sie können ein CICS-Bundle, das ein OSGi-Bundle enthält, nicht auf einem Liberty-JVM-Server installieren, da diese Konfiguration nicht unterstützt wird. Sie können stattdessen entweder das OSGi-Bundle gemeinsam mit Ihrer Webanwendung in ein Unternehmensbundlearchiv (Enterprise Bundle Archive, EBA) packen oder das OSGi-Bundle mit dem Bundle-Repository des WebSphere-Liberty-Profils für alle Webanwendungen auf dem Liberty-JVM-Server verfügbar machen.

Vorgehensweise

  1. Erstellen Sie eine BUNDLE-Ressource, die das Verzeichnis des Bundles im z/OS-Dateisystem angibt:
    1. Klicken Sie in der CICS SM-Perspektive in der Menüleiste in CICS Explorer auf Definitionen > Bundledefinitionen, um die Ansicht "Bundledefinitionen" zu öffnen.
    2. Klicken Sie mit der rechten Maustaste auf eine beliebige Stelle in der Ansicht und dann auf Neu, um den Assistenten "Neue Bundledefinition" zu öffnen. Geben Sie in den Feldern des Assistenten die Details für die BUNDLE-Ressource ein.
    3. Installieren Sie die BUNDLE-Ressource. Sie können die Ressource in aktiviertem oder in inaktiviertem Zustand installieren:
      • Wenn Sie die Ressource im Status INAKTIVIERT installieren, installiert CICS die OSGi-Bundles im Framework und löst die Abhängigkeiten auf, versucht aber nicht, die Bundles zu starten.
      • Wenn Sie die Ressource im Status AKTIVIERT installieren, installiert CICS die OSGi-Bundles, löst die Abhängigkeiten auf und startet die OSGi-Bundles. Wenn das OSGi-Bundle einen verzögerten Bundleaktivator enthält, versucht das OSGi-Framework nicht, das Bundle zu starten, bis es zuerst durch ein anderes OSGi-Bundle aufgerufen wurde.
  2. Optional: Wenn sich die BUNDLE-Ressource nicht bereits im Status AKTIVIERT befindet, dann aktivieren Sie sie, damit die OSGi-Bundles im Framework gestartet werden.
  3. Klicken Sie in der Menüleiste in CICS Explorer auf Operationen > Bundles, um die Ansicht "Bundles" zu öffnen. Überprüfen Sie den Status der BUNDLE-Ressource.
    • Wenn sich die BUNDLE-Ressource im Status AKTIVIERT befindet, konnte CICS alle Ressourcen im Bundle erfolgreich installieren.
    • Wenn sich die BUNDLE-Ressource im Status INAKTIVIERT befindet, konnte CICS mindestens eine der Ressourcen im Bundle nicht installieren.
    Wenn die BUNDLE-Ressource nicht im Status AKTIVIERT installiert werden konnte, dann überprüfen Sie die Bundlekomponenten für die BUNDLE-Ressource. Wenn sich einzelne Bundlekomponenten im Status UNBRAUCHBAR befinden, konnte CICS die OSGi-Bundles nicht erstellen. In der Regel weist dieser Status darauf hin, dass ein Problem mit dem CICS-Bundle im z/OS-Dateisystem vorliegt. Sie müssen dann die BUNDLE-Ressource löschen, das Problem beseitigen und anschließend die BUNDLE-Ressource noch einmal installieren.
  4. Klicken Sie in der Menüleiste in CICS Explorer auf Operationen > Java > OSGi-Bundles, um die Ansicht "OSGi-Bundles" zu öffnen. Überprüfen Sie den Status der installierten OSGi-Bundles und -Services im OSGi-Framework.
    • Wenn sich das OSGi-Bundle im Status WIRD GESTARTET befindet, wurde der Bundleaktivator aufgerufen, aber noch nicht zurückgegeben. Wenn für das OSGi-Bundle eine Richtlinie mit verzögerter Aktivierung gilt, bleibt das Bundle in diesem Zustand, bis es im OSGi-Framework aufgerufen wurde.
    • Wenn die OSGi-Bundles und OSGi-Services aktiv sind, ist die Java-Anwendung bereit.
    • Wenn der OSGi-Service inaktiv ist, hat CICS möglicherweise festgestellt, dass ein OSGi-Service mit diesem Namen bereits im OSGi-Framework vorhanden ist.
    • Wenn Sie die BUNDLE-Ressource inaktivieren, wird das OSGi-Bundle in den Status RESOLVED versetzt.
    • Wenn sich das OSGi-Bundle im Status INSTALLED befindet, wurde es entweder nicht gestartet oder konnte nicht gestartet werden, da die Abhängigkeiten im OSGi-Bundle nicht aufgelöst werden konnten.

Ergebnisse

Das BUNDLE wurde aktiviert, die OSGi-Bundles wurden erfolgreich im OSGi-Framework installiert und OSGi-Services sind aktiv. Die OSGi-Bundles sind für weitere Bundles im Framework verfügbar.

Nächste Schritte

Sie können die Java-Anwendung für andere CICS-Anwendungen außerhalb des OSGi-Frameworks verfügbar machen. Eine entsprechende Beschreibung finden Sie unter Aufruf einer Java-Webanwendung auf einem JVM-Server. Wenn Sie eine Anwendung aktualisieren oder entfernen möchten, lesen Sie den Abschnitt Verwalten von Java-Anwendungen.