Encadeamentos

Em um ambiente do servidor JVM, um aplicativo que está em execução em uma estrutura OSGi, pode usar um ExecutorService para criar encadeamentos executados em tarefas do CICS de maneira assíncrona.

O CICS fornece uma implementação da interface ExecutorService Java™. Essa implementação cria encadeamentos que podem usar a API JCICS para acessar serviços CICS. O servidor JVM registra o ExecutorService do CICS como um serviço OSGi na inicialização. Use esse serviço, em vez da classe Thread Java para criar tarefas que podem usar o JCICS.

O ExecutorService, fornecido pelo CICS, é registrado como alta prioridade na estrutura OSGi, para que possa ser usado pelos aplicativos para criar encadeamentos. Normalmente, um aplicativo usa a prioridade mais alta do ExecutorService, a menos que ele filtre serviços para usar uma implementação específica.

Se você deseja criar encadeamentos em seu aplicativo, o método preferido é usar um ExecutorService genérico a partir do registro OSGi. O registro OSGi usa automaticamente o ExecutorService CICS para criar encadeamentos do CICS quando o aplicativo estiver em execução em um servidor JVM. Esta abordagem significa que o aplicativo está desacoplado da implementação, assim não é necessário usar o método da API JCICS para criar encadeamentos.

No entanto, se você estiver gravando um aplicativo que seja específico para o CICS, poderá escolher usar uma classe CICSExecutorService na API JCICS para solicitar novos encadeamentos.

CICSExecutorService

Esta classe implementa a interface java.util.concurrent.ExecutorService. A classe CICSExecutorService fornece um método estático chamado runAsCICS() que pode ser usado para enviar um objeto Runnable Java para ser executado em um novo encadeamento ativado do JCICS. O método runAsCICS() é um método utilitário que executa a consulta do registro OSGi para obter uma instância de um CICSExecutorService para o aplicativo.

Como essa classe é registrada como uma implementação da interface ExecutorService Java, qualquer aplicativo que solicita um ExecutorService receberá o CICSExecutorService quando ele for executado em um servidor JVM.

CICSExecutorService.runAsCICS(Runnable runnable)

Restrições

É preciso usar o método executar() para criar encadeamentos que podem usar o JCICS. Se você usar o método submit(), o aplicativo obterá um encadeamento Java que não poderá executar o JCICS.

Para aplicativos que não estão em execução em uma estrutura OSGi, por exemplo, um programa Axis2 Java, é possível acessar o JCICS apenas no encadeamento inicial de aplicativos, pois o ExecutorService não está disponível. Além disso, é preciso garantir que todos os encadeamentos diferentes do inicial sejam concluídos antes de tomar alguma das ações a seguir: