Hebras

En un entorno de servidor de JVM, una aplicación que se ejecuta en una infraestructura de OSGi puede utilizar ExecutorService para crear hebras que se ejecuten en tareas de CICS de forma asíncrona.

CICS proporciona una implementación de la interfaz Java™ ExecutorService. Esta implementación crea hebras que pueden utilizar la API de JCICS para acceder a los servicios de CICS. El servidor de JVM registra ExecutorService de CICS como un servicio de OSGi en el inicio. Utilice este servicio en lugar de la clase Thread de Java para crear tareas que puedan utilizar JCICS.

El ExecutorService proporcionado por CICS se registra con una prioridad alta en la infraestructura de OSGi, para que las aplicaciones puedan utilizarlo para crear hebras. Normalmente, una aplicación utiliza el ExecutorService de prioridad máxima, a menos que filtre los servicios para utilizar una implementación específica.

Si desea crear hebras en la aplicación, el método preferido es utilizar un ExecutorService genérico desde el registro OSGi. El registro de OSGi utiliza automáticamente ExecutorService de CICS para crear hebras de CICS cuando la aplicación se ejecuta en un servidor de JVM. Este enfoque significa que la aplicación se desacopla de la implementación, para que no tenga que utilizar el método de la API JCICS para crear las hebras.

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

CICSExecutorService

Esta clase implementa la interfaz java.util.concurrent.ExecutorService. La clase CICSExecutorService proporciona un método estático llamado runAsCICS() que se puede utilizar para enviar un objeto Java Runnable para ejecutarlo en una nueva hebra habilitada para JCICS. El método runAsCICS() es un método de programa de utilidad que ejecuta la búsqueda de registro OSGi para obtener una instancia de un CICSExecutorService para la aplicación.

Dado que esta clase se registra como una implementación de la interfaz Java ExecutorService, a cualquier aplicación que solicite ExecutorService sólo se le proporciona CICSExecutorService cuando se ejecuta en un servidor de JVM.

CICSExecutorService.runAsCICS(Runnable runnable)

Restricciones

Debe utilizar el método execute() para crear hebras que puedan utilizar JCICS. Si utiliza el método submit(), la aplicación obtiene una hebra Java que no puede ejecutar JCICS.

Para las aplicaciones que no se ejecutan en una infraestructura de OSGi, por ejemplo en un programa Java Axis2, sólo puede acceder a JCICS en la hebra de aplicación inicial puesto que ExecutorService no está disponible. Asimismo, debe asegurarse de que finalicen todas las hebras distintas de la hebra inicial antes de realizar cualquiera de las acciones siguientes: