CICS 中的 Java 執行時期環境

CICS® 提供用於執行安全執行緒 Java™ 應用程式的 JVM 伺服器環境。非安全執行緒型應用程式無法使用 JVM 伺服器。

JVM 伺服器是可以在單一 JVM 中執行作業的執行時期環境。此環境會減少每個 Java 作業所需要的虛擬儲存體數量,並讓 CICS 並行執行多項作業。

CICS 作業會以平行的方式執行,就像在同一個 JVM 伺服器處理程序中的多個執行緒一樣。所有 CICS 作業都會共用此 JVM,而 JVM 可能正在並行執行多個應用程式。也會共用所有靜態資料和 static 類別。因此,若要在 CICS 中使用 JVM 伺服器,Java 應用程式必須是安全執行緒型應用程式。每一個執行緒都是在 T8 TCB 下執行,且可以使用 JCICS API 來存取 CICS 服務。

請不要在應用程式中使用 System.exit() 方法。此方法會造成 JVM 伺服器和 CICS 同時關閉,並影響應用程式的狀態和可用性。

多執行緒應用程式

您可以撰寫應用程式碼,以啟動新的執行緒或呼叫啟動執行緒的程式庫。如果您想要在應用程式中建立執行緒,則最好是從 OSGi 登錄中使用一般 ExecutorService。當應用程式在 JVM 伺服器中執行時,ExecutorService 會自動使用 CICS ExecutorService 來建立 CICS 執行緒。這個方法表示應用程式可以輕鬆地移轉到其他環境,您不需要使用特定的 JCICS API 方法。

不過,如果您要撰寫 CICS 專用的應用程式,可以選擇使用 JCICS API 中的 CICSExecutorService 類別來要求新的執行緒。

無論選擇何種方法,新建立的執行緒都會以 CICS 作業的形式來執行,且可以存取 CICS 服務。當 JVM 伺服器停用時,CICS 會等待 JVM 中執行的所有 CICS 作業完成。利用 ExecutorServiceCICSExecutorService 類別,CICS 可知道執行中的作業,而您可以確保應用程式工作在 JVM 伺服器關閉之前已完成。

只有在建立 JCICS 物件的作業中,您才能使用這些物件。嘗試在作業之間共用物件可能會造成無法預期的結果。

JVM 伺服器啟動及關閉

因為在 JVM 伺服器中執行的所有執行緒都共用靜態資料,所以您可以建立 OSGi 軟體組啟動器類別來起始設定靜態資料,並在 JVM 關閉時讓資料保留在正確的狀態。JVM 伺服器會持續執行直到由管理者停用為止,例如為了變更 JVM 的配置或修正問題。藉由提供組合啟動器類別,您可以確保正確設定應用程式的狀態。CICS 的逾時會指定在繼續啟動或停止 JVM 伺服器之前,要等待這些類別完成的時間長度。您不能在啟動及終止類別中使用 JCICS。