Entorno de tiempo de ejecución Java en CICS

CICS proporciona el entorno de servidor de JVM para la ejecución de aplicaciones Java™ con seguridad de hebras (threadsafe). Las aplicaciones que no son de hebra segura no pueden utilizar un servidor de JVM.

El servidor de JVM es un entorno de ejecución que puede ejecutar tareas en una única JVM. Este entorno reduce la cantidad de almacenamiento virtual necesario para cada tarea de Java y permite que CICS ejecute muchas tareas simultáneamente.

Las tareas de CICS se ejecutan en paralelo a las tareas del mismo proceso de servidor de JVM. La JVM la comparten todas las tareas de CICS, que podrían ejecutar varias aplicaciones al mismo tiempo. Todos los datos estáticos y las clases estáticas también se comparten. Así, para utilizar un servidor de JVM en CICS, una aplicación Java debe tener seguridad de hebras (threadsafe). Cada hebra se ejecuta bajo un TCB T8 y puede acceder a servicios de CICS utilizando la API JCICS.

No utilice el método System.exit() en sus aplicaciones. Este método provoca que concluyan tanto el servidor de JVM como CICS, lo que afecta al estado y la disponibilidad de sus aplicaciones.

Aplicaciones de varias hebras

Puede escribir código de aplicación para iniciar una nueva hebra o llamar a una biblioteca que inicie una hebra. Si desea crear hebras en la aplicación, el método preferido es utilizar un ExecutorService genérico desde el registro OSGi. ExecutorService utiliza automáticamente el ExecutorService de CICS para crear hebras de CICS cuando la aplicación se ejecuta en un servidor JVM. Este enfoque significa que la aplicación es más fácil de transportar a otros entornos y no es necesario utilizar métodos de la API JCICS específicos.

No obstante, si escribe una aplicación que es específica de CICS, puede utilizar una clase CICSExecutorService en la API JCICS para solicitar nuevas hebras.

Sea cual sea el método que elija, las hebras que se acaban de crear se ejecutan como tareas de CICS y pueden acceder a los servicios de CICS. Cuando el servidor de JVM está inhabilitado, CICS espera a que finalicen todas las tareas de CICS que se ejecutan en la JVM. Utilizando la clase ExecutorService o CICSExecutorService, CICS es consciente de las tareas que se ejecutan, y puede asegurarse de que finalice el trabajo de la aplicación antes de concluir el servidor de JVM.

Sólo puede utilizar los objetos de JCICS en la tarea que los ha creado. Si intenta compartir los objetos con otras tareas, se pueden producir resultados imprevisibles.

Inicio y conclusión del servidor de JVM

Como los datos estáticos se comparten entre todas las hebras que se ejecutan en el servidor de JVM, puede crear clases de activador de paquete de OSGi para inicializar datos estáticos y dejarlos en el estado correcto cuando concluya la JVM. Un servidor de JVM se ejecuta hasta que el administrador lo inhabilita, por ejemplo, para cambiar la configuración de la JVM o corregir un problema. Al proporcionar clases de activador de paquete, puede garantizar que el estado se establezca correctamente en sus aplicaciones. CICS posee un tiempo de espera que especifica cuánto tiempo debe esperarse a que se completen estas clases antes de continuar con el inicio o la detención del servidor de JVM. No puede utilizar JCICS en clases de inicio y terminación.