스레드

JVM 서버 환경의 OSGi 프레임워크에서 실행되는 애플리케이션은 ExecutorService를 사용하여 비동기적으로 CICS® 태스크에 대해 실행되는 스레드를 작성할 수 있습니다.

CICS는 Java™ ExecutorService 인터페이스의 구현을 제공합니다. 이 구현은 JCICS API를 사용하여 CICS 서비스에 액세스할 수 있는 스레드를 작성합니다. JVM 서버는 시작 시에 CICS ExecutorService를 OSGi 서비스로 등록합니다. JCICS를 사용할 수 있는 태스크를 작성하려면 Java Thread 클래스 대신 이 서비스를 사용하십시오.

CICS에서 제공하는 ExecutorService는 OSGi 프레임워크에 높은 우선순위로 등록되므로 애플리케이션에서 사용하여 스레드를 작성할 수 있습니다. 일반적으로 애플리케이션이 서비스를 필터링하여 특정 구현을 사용하지 않는 한 우선순위가 가장 높은 ExecutorService를 사용합니다.

애플리케이션에서 스레드를 작성하려는 경우 선호하는 메소드는 OSGi 레지스트리에서 일반 ExecutorService를 사용하는 것입니다. OSGi 레지스트리는 애플리케이션이 JVM 서버에서 실행 중일 때 자동으로 CICS ExecutorService를 사용하여 CICS 스레드를 작성합니다. 이러한 접근법은 애플리케이션이 구현에서 분리되므로 JCICS API 메소드를 사용하여 스레드를 작성할 필요가 없음을 의미합니다.

그러나 CICS에서 특정한 애플리케이션을 작성하는 중이면, JCICS API의 CICSExecutorService 클래스를 사용하여 새 스레드를 요청하도록 선택할 수 있습니다.

CICSExecutorService

이 클래스는 java.util.concurrent.ExecutorService 인터페이스를 구현합니다. CICSExecutorService 클래스는 Runnable Java 오브젝트를 제출하여 JCICS를 사용하는 새 스레드에 대해 실행하는 데 사용할 수 있는 runAsCICS()라는 정적 메소드를 제공합니다. runAsCICS() 메소드는 OSGi 레지스트리 검색을 수행하여 애플리케이션의 CICSExecutorService 인스턴스를 얻는 유틸리티 메소드입니다.

이 클래스는 Java ExecutorService 인터페이스의 구현으로 등록되기 때문에 ExecutorService를 요청하는 애플리케이션은 JVM 서버에서 실행될 때 CICSExecutorService만 제공됩니다.

CICSExecutorService.runAsCICS(Runnable runnable)

제한사항

execute() 메소드를 사용하여 JCICS를 사용할 수 있는 스레드를 작성해야 합니다. submit() 메소드를 사용하면 애플리케이션이 JCICS를 실행할 수 없는 Java 스레드를 가져옵니다.

OSGi 프레임워크에서 실행되지 않는 애플리케이션(예: Axis2 Java 프로그램)의 경우, ExecutorService를 사용할 수 없기 때문에 초기 애플리케이션 스레드에서만 JCICS에 액세스할 수 있습니다. 추가로, 초기 스레드 이외의 모든 스레드가 다음 조치 중 하나를 수행하기 전에 완료되었는지 확인해야 합니다.