Ejemplo de hebras y tareas

Puede crear una hebra que inicia una tarea en CICS utilizando CICSExecutorService. Si utiliza este servicio para crear una hebra, se crea una tarea de CICS que puede utilizar la API de JCICS para acceder a los servicios de CICS.

Tiene dos opciones para crear una hebra que inicia una tarea de CICS. Si desea que el código sea portátil, puede utilizar el ExecutorService de la infraestructura de OSGi. Cuando la aplicación se ejecuta en un servidor de JVM, la infraestructura de OSGi utiliza automáticamente la implementación de CICS para iniciar una tarea de CICS cuando se crea una hebra. Si escribe una aplicación específicamente para CICS, puede utilizar la clase CICSExecutorService directamente utilizando JCICS.

El siguiente ejemplo muestra un extracto de una clase Java que inicia una hebra para crear una cola de almacenamiento temporal y escribe datos en la cola.
package com.ibm.cics.executor.test;

import com.ibm.cics.server.CICSExecutorService;
import com.ibm.cics.server.TSQ;
import com.ibm.cics.server.TSQType;

public class ExecutorTest 
{
    public static void main(String[] args) 
    {                                        
        // Ponga en línea la nueva clase Runnable
        class CICSJob implements Runnable
        {             
            public void run()
            {
                // Cree una cola de almacenamiento temporal
                TSQ test_tsq = new TSQ();
                test_tsq.setType(TSQType.MAIN);

                // Establezca el nombre de TSQ
                test_tsq.setName("TSQWRITE");
                   
                // Escriba en la cola de almacenamiento temporal
                // Utilice el CCSID local de la región de CICS para que sea legible
                String test_string = "Hello from a non CICS Thread - "+ threadId;
                try 
                {
                    test_tsq.writeItem(test_string.getBytes(System.getProperty("com.ibm.cics.jvmserver.local.ccsid")));                                                     
                } 
                catch (Exception e)
                {
                    e.printStackTrace();
                }                   
            }
        }

        // Cree y ejecute la nueva clase CICSJob
        Runnable task = new CICSJob();
        CICSExecutorService.runAsCICS(task);                                                           
    }
}