執行緒

在 JVM 伺服器環境中,在 OSGi 架構中執行的應用程式可以使用 ExecutorService,建立在 CICS® 作業上非同步執行的執行緒。

CICS 提供 Java™ ExecutorService 介面的實作。 此實作會建立可使用 JCICS API 來存取 CICS 服務的執行緒。 JVM 伺服器啟動時會將 CICS ExecutorService 登錄為 OSGi 服務。 請使用此服務(而非 Java Thread 類別)來建立可使用 JCICS 的作業。

CICS 提供的 ExecutorService 在 OSGi 架構中登錄為高優先順序,可供應用程式用來建立執行緒。 一般而言,應用程式會使用最高優先順序 ExecutorService,除非它過濾服務來使用特定的實作。

如果您想要在應用程式中建立執行緒,則最好是從 OSGi 登錄中使用一般 ExecutorService。當應用程式在 JVM 伺服器中執行時,OSGi 登錄會自動使用 CICS ExecutorService 來建立 CICS 執行緒。 此方法表示應用程式與實作取消連結,所以您不需要使用 JCICS API 方法來建立執行緒。

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

CICSExecutorService

此類別實作 java.util.concurrent.ExecutorService 介面。 CICSExecutorService 類別提供一個稱為 runAsCICS() 的靜態方法,可讓您用來提交 Runnable Java 物件,於已啟用 JCICS 的新執行緒上執行。 runAsCICS() 方法是公用程式方法,可執行 OSGi 登錄查閱來取得應用程式的 CICSExecutorService 實例。

因為此類別會登錄成 Java ExecutorService 介面的實作,任何要求 ExecutorService 的應用程式只有在 JVM 伺服器中執行才會得到 CICSExecutorService

CICSExecutorService.runAsCICS(Runnable runnable)

限制

您必須使用 execute() 方法來建立可使用 JCICS 的執行緒。如果您使用 submit() 方法,則應用程式取得的 Java 執行緒就無法執行 JCICS。

對於不在 OSGi 架構中執行的應用程式,例如 Axis2 Java 程式,您只能在起始應用程式執行緒上存取 JCICS,因為 ExecutorService 無法使用。 此外,採用下列任何動作之前,您必須確定起始執行緒以外的所有執行緒都已完成: