Visão Geral do Contêiner COBOL
O contêiner COBOL permite que módulos COBOL sejam carregados no espaço de endereço em lote e eles são chamados diretamente.
O contêiner pode ser criado e destruído várias vezes dentro do ciclo de vida de um servidor de aplicativos. Cada contêiner é criado com um enclave de Ambiente de Linguagem (LE) separado do servidor. O contêiner tem a garantia de um LE limpo toda vez que ele é criado.
Os programas Java™ podem passar parâmetros para o COBOL e recuperar os resultados. A ferramenta de gerador de stub de chamada do COBOL é fornecida para criar stubs de chamada de Java e ligações de dados nas definições dos dados e da ligação na origem COBOL. Além disso, as conexões JDBC Tipo 2 criadas pelo programa Java podem ser compartilhadas com o programa COBOL sob o mesmo contexto transacional.
Valor do Contêiner COBOL
O produto fornece um ambiente de execução abrangente para processamento em lote de Java. Parte do design do suporte em lote é a integração com o processamento de outras informações. COBOL tem sido parte do processamento em lote desde os primórdios dos computadores e há investimento significativo nos ativos de COBOL. O contêiner COBOL fornece um meio de integração direta de COBOL com o processamento Java.
Restrições de programação para programas COBOL
- Manipuladores de erros definidos pelo usuário não são permitidos.
- O controle explícito da transação não é permitido: por exemplo, nenhum COMMIT ou ROLLBACK.
- Registros especiais de DB2, como SOLID ou SCHEMA, não podem ser configurados.
- O acesso de DD requer código do usuário para alocar ou desalocar dinamicamente o DD.
- Chamada de Java de rótulos ENTRY não é suportada.
- Chamada de COBOL de código Java não é suportada
Requisitos de compilação COBOL
Você deve compilar todos os módulos de COBOL que você usa no ambiente com as seguintes opções:
- dll
- Módulos COBOL devem estar em formato DLL.
- rent
- Módulos COBOL devem conter código reentrante.
- encadeamento
- Módulos COBOL devem ter encadeamentos seguros.
- outdd(WCGILOUT)
- Requerido para a saída COBOL DISPLAY aparecer nos logs de tarefa do produto.
- SQL('ATTACH(RRSAF)')
- Requerido para acesso ao DB2.
cbl dll,lib,rent,thread,outdd(wcgilout)
cob2 -c -bdll,rent,thread,lib,list '-qOUTDD(WCGILOUT)' sample.cbl
Restrições para o contêiner COBOL
O produto que hospeda o contêiner COBOL deve ser configurado com um perfil de carga de trabalho ISOLATE.
Para obter informações sobre como configurar o perfil da carga de trabalho, leia sobre as configurações avançadas de serviços do ORB na plataforma z/OS.
Restrições de origem de dados do JDBC para o contêiner COBOL
As restrições listadas nessa seção se aplicam a qualquer origem de dados JDBC que contenha conexões do DB2 de tipo 2 que sejam compartilhadas entre o Java e o código COBOL por meio de ILContainer.setDB2Connection. [Além disso, especifique o tipo de objeto para ILContainer.setDB2Connection.]
Essas restrições asseguram que quaisquer construtos de dados do DB2 que estejam abertos pelo código COBOL e que persistam nos limites COMMIT, como COM CURSORES DE SUSPENSÃO, sejam adequadamente limpos quando a conexão com o JDBC for fechada.
O conjunto de conexões deve ser DESATIVADO. É possível desativar o conjunto de conexões usando a propriedade disableWASConnectionPooling. Para configurar essa propriedade usando o console administrativo, clique em
. Inclua uma propriedade customizada denominada disableWASConnectionPooling e configure o valor como true.O compartilhamento da conexão deve ser configurado como UNSHARED. O compartilhamento da conexão para a origem de dados pode ser configurado como UNSHARED usando a propriedade globalConnectionTypeOverride. Para configurar essa propriedade usando o console administrativo, clique em
. Inclua uma propriedade customizada denominada globalConnectionTypeOverride e configure o valor como não compartilhado.Para obter informações adicionais sobre estas propriedades, leia sobre Como ajustar conjuntos de conexões.