COMMAREA ou estruturas de dados do canal
CICS® Transaction Server for z/OS® programas podem ser vinculados usando uma estrutura de dados COMMAREA ou uma estrutura de dados de canal como entrada, que retornam a mesma estrutura de dados da saída. O nó CICSRequest suporta a interação com CICS por meio de COMMAREA ou estruturas de dados do canal.
COMMAREAs
Se estiver usando uma COMMAREA como a estrutura de dados de entrada para comunicação com CICS, o nó CICSRequest assumirá uma parte do Corpo de Entrada, conforme definido nas propriedades de Solicitação do nó CICSRequest e o enviará para CICS como a COMMAREA.
O COMMAREA retornando é então colocado na árvore de Saída e substitui o Corpo Existente no local que é definido nas propriedades de Resultado do nó CICSRequest . A COMMAREA pode então ser configurada para análise usando as propriedades de Parsing Message Message Parsing do CICSRequest .
Ao definir uma estrutura de dados COMMAREA como entrada, você deve garantir que o valor da propriedade CICSRequest Comprimento length seja grande o suficiente para conter os dados da solicitação de entrada, ou os dados de resposta de saída, mas que ele não exceda o valor máximo de 32767 bytes. Se o valor Comprimento de Commarea não for grande o suficiente para ser usado para os dados de resposta ou para os dados da solicitação, ocorrerá uma fuga de memória no CICS. O tamanho da COMMAREA não pode ser mudado pelo programa CICS . Se os dados do pedido serializados forem maiores que o Comprimento da Commarea, os dados serão truncados no Comprimento da Commarea. É possível obter o valor de Comprimento de Commarea do administrador ou desenvolvedor do CICS .
O valor padrão para o nó CICSRequest nó estrutura de dados propriedade básica é Commarea.
Se está usando a conexão direta de duas camadas, o CICS examina a propriedade file.encoding da JVM para determinar a página de códigos da COMMAREA. Isso pode causar erros de conversão de página de códigos no programa " CICS ". Se a propriedade não estiver configurada, um valor padrão de 437 será usado. Para obter mais informações, consulte a documentação do CICS sobre páginas de código.
Para obter mais informações sobre como usar uma estrutura de dados COMMAREA como entrada, consulte Definindo uma estrutura de dados CICS Transaction Server for z/OS, Desenvolvendo um fluxo de mensagens com um nó CICSRequeste Construindo uma mensagem para o nó CICSRequest.
Canais
Os canais do CICS contêm várias estruturas chamadas contêineres. Os contêineres retêm as informações de negócios que são acessados pelo programa CICS de destino Cada contêiner pode conter até 2 GB de dados, enquanto os canais podem ter quantos contêineres for necessário, o que oferece flexibilidade em termos de tamanho e layout de dados. Cada contêiner tem um nome alfanumérico com no máximo 16 caracteres, que é exclusivo no canal e é usado como mecanismo para recuperar o conteúdo do contêiner do canal.
character ou
binary. O tipo de contêiner pode afetar a conversão de dados entre IBM® App Connect Enterprise e CICS; no entanto, o tipo de contêiner não tem qualquer impacto no formato das informações que podem ser inseridas no contêiner.
Ao contrário das estruturas COMMAREA, o tamanho do canal de resposta não precisa ser semelhante à solicitação, enquanto as COMMAREAs devem permitir o tamanho da resposta na solicitação.
Canais e contêineres no CICS

01 ORDER_STRUCTURE.
03 QTY COMP-1.
03 ITEM PIC X(10).
03 PRICE PIC S9(9).O programa CICS de destino pode recuperar esses dois contêineres do canal, fornecendo o nome do contêiner ao usar a API GET CONTAINER . Quando os dados são fornecidos ao programa CICS , o programa processa os dados como ele escolher. Por exemplo, o programa pode colocar outros contêineres no canal para
fornecer uma resposta ao contêiner chamada, usando a API PUT CONTAINER.Canais e contêineres no ` IBM App Connect Enterprise `
No ` IBM App Connect Enterprise `, um canal ` CICS ` é representado como uma estrutura de coleção de mensagens. Uma coleta de mensagens pode manter mensagens filhas, cada uma tratada como um container pelo nó CICSRequest . Uma estrutura de coleta de mensagens é usada como entrada e saída para o nó CICSRequest ao usar uma estrutura de dados do canal. Para obter mais informações sobre coleções de mensagens, consulte Coleções de mensagense para obter informações sobre a criação de uma coleção de mensagens, consulte Criando uma coleção de mensagens usando ESQL
O nome da coleção de mensagens é usado para nomear o canal. O nome da mensagem filha na coleção de mensagens é usado como nome do contêiner no canal e deve ser exclusivo. Se o nome da mensagem filha na coleção de mensagens não for exclusivo, a solicitação será rejeitada no CICS
| CICS | IBM App Connect Enterprise |
|---|---|
| Nome do canal | Nome da coleção de mensagens |
| Nome do contêiner (deve ser exclusivo para o canal pai) | Nome da mensagem filha (deve ser exclusivo para a coleção de mensagens) |
Atributos de valor de nome
IBM App Connect Enterprise permite adicionar atributos nome-valor a uma coleção de mensagens para criar um contêiner. Uma coleção de mensagens
pode ter zero ou mais atributos. O nome de um atributo deve ser exclusivo em uma
coleção de mensagens. Um atributo padrão para a coleta de mensagens é um atributo chamado CollectionName.
É possível incluir atributos de nome-valor em uma coleção de mensagem para criar contêineres CICS . Os atributos de nome/valor
na coleção de mensagens, a não ser CollectionName, podem ser
usados no lugar de pastas de mensagens completas para dados simples. Por exemplo, um atributo string value-value pode ser configurado na coleção de mensagens e usado diretamente pelo nó CICSRequest sem precisar criar um conjunto de mensagens para o elemento.
Os atributos de nome/valor podem ser produzidos a partir de contêineres na saída, bem como aceitos para entrada. Para obter informações sobre como criar um atributo em vez de uma pasta de mensagem de um contêiner, consulte Nó CICSRequest.
CollectionName e CustomerName são ambos atributos de nome-valor, no entanto, o atributo CollectionName não é tratado como um contêiner pelo nó CICSRequest e, portanto, não é enviado para CICS.
Se o atributo CustomerName deve ser tratado como um container de caracteres pelo nó CICSRequest , o LocalEnvironment deve refletir isso.
LocalEnvironment
SET OutputLocalEnvironment.Destination.CICS.RequestChannel.Containers.<myContainerName> = CHARACTER;Quando uma coleta de mensagens é emitida a partir do nó CICSRequest seguindo a solicitação, o LocalEnvironment contém as informações do tipo retornado para os contêineres. Por exemplo, quando o canal de resposta voltar do CICS, o LocalEnvironment mostrará os tipos dos contêineres que voltaram no local a seguir: LocalEnvironment.CICS.ResponseChannel.Containers.<myContainerName> = CHARACTER
SET OutputLocalEnvironment.Destination.CICS.RequestChannel.ChannelName = <myNewChannelName>;ChannelName alfanumérico com no máximo 16
caracteres no LocalEnvironment. O SingleMessageContainerName
alfanumérico de no máximo 16 caracteres que precisa ser criado deve também ser fornecido
no seguinte local:SET OutputLocalEnvironment.Destination.CICS.RequestChannel.SingleMessageContainerName = <mySingleMessageContainerName>;Como uma coleção de mensagens permite que cada contêiner no canal seja modelado como uma mensagem separada, cada mensagem tem sua própria estrutura e opções de análise. Por exemplo, um contêiner pode ser XML e outro poderá ser baseado em um copybook, que pode ser representado usando as mensagens XMLNSC e MRM em uma coleção de mensagens.
Cada mensagem filha na coleção de mensagens contém informações de domínio de mensagens, conjunto, tipo, formato, CCSID e codificação na pasta Propriedades que está associado à mensagem filha, que é serializada em um fluxo de bytes e enviada para CICS. Cada pasta de mensagem filha na coleção de mensagens que está sendo enviada ao CICS é serializada no nível do último filho do domínio de propriedade de mensagem. Nem todos os contêineres CICS requerem um conjunto de mensagens para representá-los.
No exemplo anterior, o contêiner Order pode ser representado como MRM, enquanto um conjunto de mensagens pode ser criado do copybook ORDER_STRUCTURE para representá-lo. O canal de retorno é convertido em uma coleção de mensagens, onde cada mensagem filha na coleção de mensagens representa um contêiner do canal. As mensagens filhas na coleção de mensagens são mapeadas para uma lista de informações de domínio, conjunto, tipo, formato, CCSID e codificação de mensagem usando o nome da mensagem filha; entretanto, as informações de CCSID e codificação são ignoradas para mensagens de caractere. Se um mapeamento não puder ser encontrado na mensagem, um mapeamento padrão poderá ser fornecido.
Como não é possível saber quantos contêineres estão na resposta, uma coleção de mensagens é sempre produzida como saída.
Você pode usar as propriedades de Análise de Mensagem de Resposta do nó CICSRequest para mapear um contêiner retornando para um domínio de mensagem, conjunto, tipo, formato, CCSID e informações de codificação. Particularmente, a propriedade Local de dados de resultados pode ser usada para reduzir a árvore de resultados para uma única pasta de mensagem ou para um único campo ou subárvore para saída. Para obter informações sobre a propriedade Local dos Dados do Resultado , consulte Nó CICSRequest
- Deve ser dado ao canal um nome alfanumérico de no máximo 16 caracteres.
Como o canal é representado por uma coleção de mensagens em IBM App Connect Enterprise, você pode definir o nome do canal configurando o nome da coleção de mensagens. Os nomes de coleção de mensagens são configurados usando o atributo
CollectionName. Para obter mais informações sobre como criar uma coleção de mensagem e configurar o nome da coleção de mensagem, consulte Criando uma coleção de mensagens usando ESQL - Os detalhes a seguir devem ser especificados para cada contêiner no canal:
- Um nome com no máximo 16 caracteres alfanuméricos.
Como um contêiner é representado por uma mensagem secundária no ` IBM App Connect Enterprise `, é possível criar um nome de contêiner definindo o nome da mensagem secundária. Para obter mais informações sobre como criar uma coleção de mensagens e configurar o nome da mensagem filha, consulte Criando uma coleção de mensagem usando ESQL
- Um tipo de contêiner; por exemplo,
binaryoucharacter. - Um diretório a ser usado para colocar dados de resposta.
- Um nome com no máximo 16 caracteres alfanuméricos.