Die Klassen in der JCICS-Bibliothek werden wie normale Java™-Klassen verwendet. Ihre Anwendungen deklarieren eine Referenz des erforderlichen Typs und mit dem Operator new wird eine neue Instanz einer Klasse erstellt.
Verwenden Sie in CICS-Java-Programmen keine Beendigungsfunktionen (Finalizer). Eine Erläuterung, warum Finalizer nicht empfohlen werden, finden Sie im IBM SDK für z/OS, Java Technology Edition, Version 7 (siehe Abschnitt Fehlerbehebung).
Beenden Sie CICS-Java-Programme nicht mit dem Aufruf System.exit(). Wenn Java-Anwendungen in CICS ausgeführt werden, wird durch Verwendung eines weiteren Java-Programms (Java-Wrapper) die Methode public static void main() aufgerufen. Wenn Sie den Wrapper verwenden, initialisiert CICS die Umgebung für Java-Anwendungen und, was noch wichtiger ist, bereinigt alle Prozesse, die während der Lebensdauer der Anwendung verwendet wurden. Wenn die JVM beendet wird (selbst wenn dabei der Rückkehrcode 0 zurückgegeben wird), kann diese Bereinigung nicht ausgeführt werden, was zu einer Inkonsistenz der Daten führen kann. Wenn System.exit() verwendet wird, während die Anwendung in einem JVM-Server ausgeführt wird, wird der JVM-Server beendet und CICS wird unverzüglich in den Wartemodus versetzt.
// Definieren eines Paketnamens für das Programm
package unit_test;
// Importieren des JCICS-Pakets
import com.ibm.cics.server.*;
// Deklarieren einer Klasse für eine CICS-Anwendung
public class JCICSTSQ
{
// Die Hauptmethode wird aufgerufen, wenn die Anwendung ausgeführt wird
public static void main(CommAreaHolder cah)
{
try
{
// Erstellen und Benennen eines TSQ-Objekts
TSQ tsq = new TSQ();
tsq.setName("JCICSTSQ");
// Löschen der Warteschlange, falls sie vorhanden ist
try
{
tsq.delete();
}
catch(InvalidQueueIdException e)
{
// Eingliedern von QIDERR
System.out.println("QIDERR ignoriert!");
}
// Schreiben eines Elements an die Warteschlange
String transaction = Task.getTask().getTransactionName();
String message = "Der Name der Transaktion lautet - " + transaction;
tsq.writeItem(message.getBytes());
}
catch(Throwable t)
{
System.out.println("Nicht erwartetes Element der Throwable-Klasse: " + t.toString());
}
// Rückkehr aus der Anwendung
return;
}
}