Creación de un fragmento de paquete OSGi para clases de proveedor

Si la aplicación utiliza clases de IBM o proveedor proporcionadas con el JRE, debe crear un fragmento de paquete OSGi para que estos cambios estén disponibles en la infraestructura OSGi

Acerca de esta tarea

A partir de CICS TS 5.1, la infraestructura OSGi tiene reglas más estrictas que controlan qué clases se pueden cargar en el JRE.

La infraestructura OSGi carga cualquier paquete con el prefijo java, según requiera la aplicación. Si una aplicación utiliza un paquete de IBM o proveedor que se proporciona con el JRE, como com.ibm.misc, debe crear un paquete OSGi de middleware para que estas clases estén disponibles para la infraestructura OSGi. Si no lo hace, las transacciones terminarán de forma anómala con un código AJ05 y se grabarán errores java.lang.ClassNotFoundException en el registro de errores del servidor de JVM y el registro del sistema CICS.

No es necesario completar estos pasos para las clases CICS Java, ya que las clases JCICS pasan a estar automáticamente disponibles para la infraestructura OSGi.

Procedimiento

  1. Para cada paquete de IBM o proveedor que requiera la aplicación, cree un fragmento de paquete OSGi para exportar el paquete. El ejemplo siguiente muestra lo que puede contener el manifiesto del fragmento de paquete OSGi:
    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 define que el fragmento de paquete OSGi amplía el paquete del sistema en la infraestructura OSGi. Export-Package lista los paquetes que se exportan; en este ejemplo, se exporta el paquete que empieza por com.ibm.misc. Si utiliza Eclipse, ignore el error que se indica.

  2. Cambie la aplicación para añadir una importación para el paquete exportado en el manifiesto del paquete OSGi adecuado. Cada paquete OSGi que requiere una clase desde un paquete de IBM o proveedor debe declarar el paquete en el manifiesto.
  3. Cree un proyecto de paquete de CICS para los fragmentos de paquete OSGi. Puede incluir uno o varios fragmentos de paquete OSGi en el proyecto, en función de si desea gestionar el ciclo de vida de los fragmentos conjuntamente. Se recomienda mantener el paquete de middleware separado de la aplicación, de forma que los administradores puedan gestionar el ciclo de vida de forma independiente en CICS.

Resultados

Ha creado un proyecto de paquete de CICS que contiene uno o más fragmentos de paquete OSGi que exportan paquetes del JRE. Cuando se despliega, este paquete de middleware garantiza que la aplicación se puede ejecutar en un servidor de JVM CICS TS 5.1.

Qué hacer a continuación

Despliegue la aplicación y el paquete de middleware. Debe asegurarse de que el perfil de JVM para el servidor de JVM de destino especifica el paquete de middleware en la opción OSGI_BUNDLES.