Si votre application utilise IBM ou des classes de fournisseur
fournies avec le JRE, vous devez créer un fragment de bundle OSGi pour
rendre les classes disponibles dans l'infrastructure OSGi.
Pourquoi et quand exécuter cette tâche
Depuis
CICS TS 5.1,
l'infrastructure OSGi possède des règles plus strictes qui contrôlent les classes pouvant
être chargées à partir de l'environnement d'exécution Java.
Tout package portant le préfixe java est
chargé par l'infrastructure OSGi, comme requis par l'application. Si une
application utilise un package IBM ou fournisseur fourni avec
l'environnement d'exécution Java, tel que com.ibm.misc, vous devez créer un
bundle OSGi de logiciel intermédiaire pour rendre ces classes disponibles pour l'infrastructure
OSGi. Sinon, les transactions s'achèvent avec un code AJ05 et des erreurs java.lang.ClassNotFoundException
sont consignées dans le journal des erreurs du serveur JVM et dans le journal du système CICS.
Ces
étapes sont facultatives pour les classes Java CICS, car
les classes JCICS sont automatiquement disponibles dans l'infrastructure OSGi.
Procédure
- Pour chaque package IBM ou fournisseur requis par l'application,
créez un fragment de bundle OSGi pour exporter le package. L'exemple
suivant montre les éléments que le manifeste du fragment de bundle OSGi
peut contenir :
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Extension
Bundle-SymbolicName: com.ibm.example.extension
Bundle-Version: 1.0.0
Bundle-Vendor: IBM
Fragment-Host: system.bundle; extension:=framework
Export-Package: com.ibm.misc
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Fragment-Host indique
que le fragment de bundle OSGi étend le bundle système dans l'infrastructure
OSGi. Export-Package répertorie les packages
exportés ; dans cet exemple, le package commençant par com.ibm.misc est
exporté. Si vous utilisez Eclipse, ignorez l'erreur marquée.
- Modifiez l'application de façon à ajouter une importation pour le package
exporté dans le manifeste de bundle OSGi approprié. Chaque
bundle OSGi qui nécessite une classe d'un package IBM ou fournisseur doit
déclarer le package dans le manifeste.
- Créez un projet de regroupement CICS pour les fragments de bundle OSGi.
Vous pouvez inclure un ou plusieurs fragments de bundle OSGi dans le projet, si
vous souhaitez gérer le cycle de vie des fragments ensemble. La meilleure pratique consiste à conserver le bundle de logiciel intermédiaire séparé de
l'application, pour que les administrateurs puissent gérer le cycle de vie séparément
dans CICS.
Résultats
Vous avez créé un projet de regroupement CICS qui contient un ou
plusieurs fragments de bundle OSGi, qui exportent des packages à partir de l'environnement d'exécution Java. Lorsqu'il
est déployé, ce logiciel intermédiaire permet de s'assurer que votre application peut s'exécuter
sur un serveur JVM
CICS TS 5.1.
Que faire ensuite
Déployez l'application et le bundle de logiciel intermédiaire. Vous devez vérifier
que le profil de machine virtuelle Java du serveur de machine virtuelle Java cible indique le bundle de
logiciel intermédiaire dans l'option
OSGI_BUNDLES.