CICS 中的 Java 运行时环境

CICS® 提供用于运行线程安全型 Java 应用程序的 JVM 服务器环境。非线程安全型的应用程序不能使用 JVM 服务器。

JVM 服务器

JVM 服务器是可以在单个 JVM 中运行任务的运行时环境。此环境减少了每个 Java 任务所需的虚拟存储量,并允许 CICS 并行运行多个任务。

CICS 任务作为同一个 JVM 服务器进程中的线程并行运行。所有 CICS 任务(可能同时运行多个应用程序)共享 JVM。还会共享所有静态数据和静态类。因此,要在 CICS 中使用 JVM 服务器,Java 应用程序必须是线程安全型应用程序。 每个线程都在 T8 TCB 下运行,可以使用 JCICS API 访问 CICS 服务。

您可以编写应用程序代码以启动新线程,或者调用启动线程的库。但是,这些线程无法访问 CICS 服务。通过应用程序产生的线程来访问 CICS 服务的任何尝试都会导致 Java bm.exception。 如果要在您的应用程序中创建线程,请确保这些线程不会在运行该应用程序的 CICS 任务的生存期外运行。系统程序员禁用 JVM 服务器之后, CICS 会等待当前正在 T8 TCB 上运行的所有线程在 JVM 中结束。但是,会终止由应用程序本身创建的所有线程。

由于 JVM 服务器中运行的所有线程会共享静态数据,因此您可以创建 OSGi 束激活程序类以初始化静态数据,并在 JVM 关闭时使该数据处于正确的状态。JVM 服务器会一直运行,直至系统程序员将其禁用,例如,添加应用程序或纠正问题。通过提供束激活程序类,您可以确保为应用程序正确地设置了状态。CICS 具有超时设置,可以指定在继续启动或停止 JVM 服务器之前要等待多长时间以使这些类完成。请勿在启动和终止类中使用 JCICS。

请勿在您的应用程序中使用 System.exit() 方法。 该方法会导致 JVM 服务器和 CICS 关闭,从而影响您的应用程序的状态和可用性。

父主题: 关于 CICS 您需要了解的内容