使用 JCICS

使用来自 JCICS 库的类(例如正常 Java™ 类)。您的应用程序声明所需类型的引用,并使用 new 运算符创建了新的类实例。

关于此任务

您使用 setName 方法指定 CICS® 资源的名称,以提供底层的 CICS 资源的名称。创建资源后,可以使用标准 Java 构造来操作对象。 您可以常用方法来调用所声明的对象的方法。在所提供的 Javadoc 中提供了每个类支持的方法的完整详细信息。

请勿在 CICS Java 程序中使用终止函数。要获取有关为何不推荐终止函数的说明,请参阅 IBM SDK for z/OS Java Technology Edition V7(请参阅“故障诊断”部分)

请勿通过发出 System.exit() 调用来终止 CICS Java 程序。 在 CICS 下运行 Java 应用程序时,会通过使用其他 Java 程序(称为 Java 包装器)来调用 public static void main() 方法。使用包装器时,CICS 会初始化 Java 应用程序环境,并且,更重要的是,清除在应用程序生存期间使用的任何过程。 终止 JVM(甚至使用清除返回码 0)可阻止运行该清除过程,并且可能导致数据不一致。 在 JVM 服务器中运行应用程序时使用 System.exit() 会立即终止该 JVM 服务器并停顿 CICS。

过程

  1. 编写 main 方法。 CICS 尝试将控制传递给 PROGRAM 资源的 JVMCLASS 属性指定的类中特征符为 main(CommAreaHolder) 的方法。 如果未找到该方法,那么 CICS 会尝试调用方法 main(String[])
  2. 要使用 JCICS 创建对象,请按以下步骤进行操作:
    1. 声明引用:
         TSQ tsq;
       
    2. 使用 new 运算符来创建对象:
         tsq = new TSQ()
       
    3. 使用 setName 方法来命名该对象:
         tsq.setName("JCICSTSQ");
       
  3. 使用该对象来与 CICS 交互。

示例

该示例显示了如何创建 TSQ 对象、在您刚创建的临时存储器队列对象上调用 delete 方法,并且如果该队列为空,那么抛出异常。
// Define a package name for the program
package unit_test;

// Import the JCICS package
import com.ibm.cics.server.*;

// Declare a class for a CICS application
public class JCICSTSQ 
{

    // The main method is called when the application runs
    public static void main(CommAreaHolder cah) 
    {

         try 
         {
             // Create and name a Temporary Storage queue object
             TSQ tsq = new TSQ();
             tsq.setName("JCICSTSQ");

             // Delete the queue if it exists
             try 
             {
                   tsq.delete();
             } 
             catch(InvalidQueueIdException e) 
             {
                  // Absorb QIDERR
                  System.out.println("QIDERR ignored!");
             }

             // Write an item to the queue
             String transaction = Task.getTask().getTransactionName();
             String message = "Transaction name is - " + transaction;
             tsq.writeItem(message.getBytes());

         } 
         catch(Throwable t) 
         {
             System.out.println("Unexpected Throwable: " + t.toString());
         }

         // Return from the application
         return;
    }
}