O CICS fornece o ambiente do servidor JVM para execução de aplicativos Java™ threadsafe. Aplicativos que não são thread-safe não podem usar um servidor JVM.
O servidor JVM é um ambiente de tempo de execução que pode executar tarefas em uma única JVM. Esse ambiente reduz a quantia de armazenamento virtual necessária para cada tarefa Java, e permite ao CICS executar muitas tarefas simultaneamente.
Tarefas CICS executam em paralelo como encadeamentos no mesmo processo do servidor JVM. O JVM é compartilhado por todas as tarefasCICS, que podem estar executando diversos aplicativos simultaneamente. Todos os dados estáticos e as classes estáticas também são compartilhados. Assim, para usar um servidor JVM no CICS, um aplicativo Java deve ser threadsafe. Cada encadeamento é executado em um T8 TCB e pode acessar serviços CICS usando a API JCICS.
Não use o método System.exit() em seus aplicativos. Esse método causa o encerramento de ambos, o servidor JVM e o CICS, afetando o estado e a disponibilidade de seus aplicativos .
É possível criar código de aplicativo para iniciar um novo encadeamento ou chamar uma biblioteca que inicia um encadeamento. Se você deseja criar encadeamentos em seu aplicativo, o método preferido é usar um ExecutorService genérico a partir do registro OSGi. O ExecutorService usa automaticamente o ExecutorService do CICS para criar encadeamentos CICS quando o aplicativo estiver em execução em um servidor JVM. Esta abordagem significa que o aplicativo é mais fácil de transportar para outros ambientes, e não é preciso ter métodos API JCICS específicos.
No entanto, se estiver gravando um aplicativo específico para CICS, será possível escolher usar uma classe CICSExecutorService na API JCICS para solicitar novos encadeamentos.
Qualquer que seja o método escolhido, os encadeamentos recém criados serão executados como tarefas CICS e poderão acessar serviços CICS. Quando o servidor JVM estiver desativado, o CICS aguardará todas as tarefas CICS em execução no JVM serem concluídas. Ao usar a classe ExecutorService ou CICSExecutorService, o CICS reconhece as tarefas em execução e é possível garantir que seu trabalho de aplicativo seja concluído antes de o servidor JVM seja encerrado.
É possível usar objetos JCICS somente na tarefa que os criou. Qualquer tentativa de compartilhar os objetos entre tarefas podem produzir resultados imprevisíveis.
Como os dados estáticos são compartilhados por todos os encadeamentos em execução no servidor JVM, é possível criar classes do ativador de pacotes configuráveis OSGi para inicializar dados estáticos e deixá-los no estado correto, quando o JVM for encerrado. Um servidor JVM é executado até ser desativado por um administrador, por exemplo para alterar a configuração do JVM ou para corrigir um problema. Fornecendo classes de ativador de pacote configurável, é possível assegurar que o estado seja configurado corretamente para seus aplicativos. O CICS tem um tempo limite que especifica quanto tempo esperar pela conclusão dessas classes antes de continuar a iniciar ou parar o servidor JVM. Não é possível usar o JCICS em classes de inicialização e de finalização.