Mit dem CICSExecutorService können Sie einen Thread erstellen, der eine Task in CICS startet. Wenn Sie diesen Service für die Erstellung eines Threads verwenden, wird eine CICS-Task erstellt, die über die JCICS-API auf CICS-Services zugreifen kann.
Sie haben zwei Möglichkeiten für die Erstellung eines Threads, der eine CICS-Task startet. Wenn Ihr Code portierbar sein soll, können Sie den ExecutorService im OSGi-Framework verwenden. Wird die Anwendung in einem JVM-Server ausgeführt, verwendet das OSGi-Framework automatisch die CICS-Implementierung für den Start einer CICS-Task, wenn ein Thread erstellt wird. Wenn Sie eine Anwendung speziell für CICS schreiben, können Sie mit JCICS die Klasse CICSExecutorService direkt verwenden.
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)
{
// Integrieren der neuen ausführbaren Klasse
class CICSJob implements Runnable
{
public void run()
{
// Erstellen einer Warteschlange für temporären Speicher
TSQ test_tsq = new TSQ();
test_tsq.setType(TSQType.MAIN);
// Festlegen des Namens der Warteschlange für temporären Speicher
test_tsq.setName("TSQWRITE");
// Schreiben in die Warteschlange für temporären Speicher
// Verwenden der lokalen CCSID der CICS-Region, damit sie lesbar ist
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();
}
}
}
// Erstellen und Ausführen der neuen ausführbaren CICSJob-Task
Runnable task = new CICSJob();
CICSExecutorService.runAsCICS(task);
}
}