Sobre a Amostra Channel Connectivity do CICS Transaction Server for z/OS

O programa WMBCHAN1 do CICS espera um canal com vários contêineres:

O programa WMBCHAN1 também retorna dois outros contêineres: mirrorTran, que contém a transação espelhada na qual o WMBCHAN1 está em execução, e ChannelName, que contém o nome do canal (que é o nome da coleção de mensagem de entrada).

A entrada XML para o fluxo de mensagens é mostrada no seguinte exemplo:

<Data>
  <Explanation1>These numbers are added together by CICS. Each number is a separate input container</Explanation1>
  <Numbers>
    <number>10</number>
    <number>20</number>
    <number>30</number>
    <number>40</number>
    <number>50</number>
  </Numbers>
  <Explanation2>CICS examines each string and returns the longest
string in a response container</Explanation2>
  <Strings>
    <string>short data</string>
    <string>some other data, but not long enough</string>
    <string>A really long sentence that CICS can pick out and
return in a container.</string>
    <string>data</string>
    <string>some more strings</string>
  </Strings>
</Data>

O canal de entrada deve se parecer com o seguinte exemplo:

Nome do Contêiner Conteúdo
number1 10
number2 20
number3 30
number4 40
number5 50
string1 dados curtos
string2 alguns outros dados, mas não longos o suficiente
string3 uma sentença muito longa que o CICS pode escolher e retornar em um contêiner
string4 dados
string5 mais algumas sequências

Mensagens de entrada

Essa amostra foi projetada para trabalhar em dois modo diferentes. O primeiro modo é o modo de coleta de mensagem. Nesse modo, a amostra demonstra como construir uma coleta de mensagens e usá-la para representar vários contêineres de entrada.

O segundo modo é o modo de mensagem única. O nó CICSRequest pode criar um contêiner único a partir de uma única mensagem (coleta de não mensagem). No modo de mensagem única, a amostra demonstra como enviar uma mensagem como um contêiner para o CICS sem sobrecarregar uma coleção de mensagens.

Modo de Coleta da Mensagem

A coleta da mensagem é construída no ESQL usando um nó Compute. O nó Compute conclui as seguintes tarefas:

Modo de mensagem única

No modo de mensagem única, uma única mensagem XML é enviada para o fluxo. Um nó Compute configura os metadados no ambiente local que nomeia o contêiner e o canal que serão usados. Os dados XML são transformados em um fluxo de bits e enviados como o corpo do contêiner nomeado.

Para concluir essas ações, o nó Compute possuirá as seguintes instruções:

Enviar a mensagem com um nome de canal de SINGLEMSG:
SET OutputLocalEnvironment.Destination.CICS.RequestChannel.ChannelName='SINGLEMSG';

Enviar o corpo da mensagem em um contêiner chamado string1.
SET OutputLocalEnvironment.Destination.CICS.RequestChannel.SingleMessageContainerName='string1';

Enviar string1 como um contêiner de caractere.
SET OutputLocalEnvironment.Destination.CICS.RequestChannel.Containers.string1='CHARACTER';

Processando a resposta

Independentemente do tipo de entrada enviado para o nó CICSRequest, quando o suporte de canal é usado, a saída sempre é uma coleção de mensagens.

A mensagem de resposta contém quatro contêineres de interesse:

Na guia de propriedades Análise de Mensagens de Resposta CICSRequest, uma entrada na tabela mapeia o contêiner de soma para um domínio do MRM, junto com o mesmo conjunto de mensagens (CICSIntegerMSet) que foi usado para os contêineres de número de entrada. Portanto, se o contêiner de soma for retornado, ele será mapeado para essas informações de análise.

A caixa de seleção na guia Análise da Mensagem de Resposta é configurada para que quaisquer contêineres retornados do CICS que não estejam nomeados na tabela sejam retornados como atributos de nome-valor, em vez de pastas de mensagens. Os contêineres longestString, mirrorTran e channelName são todos contêineres de caracteres que não requerem interpretação adicional, portanto, eles podem ser colocados diretamente na mensagem XML para serem gerados a partir do fluxo.

Fluxos de Mensagem

O diagrama a seguir mostra o fluxo de mensagens da amostra CICS Transaction Server for z/OS Channel Connectivity.

Fluxo de mensagens da amostra CICS Transaction Server for z/OS Channel Connectivity

Tipo de Nó Nome de nó
MQInput CICSCHANNEL_IN, CICSSingleMsg_IN
Compute CreateCollection, AddLENames, ProcessChannel, ProcessAbend
CICSRequest Pedido CICS
MQOutput CICSCHANNEL_OUT, CICSCHANNEL_ABEND

Para localizar mais informações sobre os nós que são usados na amostra CICS Transaction Server for z/OS Channel Connectivity, consulte Nós Integrados na documentação do WebSphere Message Broker.

Rota das Mensagens de Amostra de Canal

Ao colocar uma das mensagens na fila de entrada, a mensagem percorrerá os nós. Se qualquer uma das filas tiver sido desativada, a mensagem não pode seguir esse caminho.

A seção a seguir descreve a rota tomada pelas mensagens e a função dos nós no fluxo de mensagens principal da amostra Channel Connectivity do CICS Transaction Server para z/OS.

Modo de coleta de mensagem: Uma mensagem é enviada para a fila CICSCHANNEL_IN.

  1. CICSCHANNEL_IN: O nó CICSCHANNEL_IN MQInput obtém a mensagem de entrada a partir da fila de entrada.
  2. CreateCollection: O nó Compute CreateCollection cria uma coleta de mensagens ao criar primeiro um último filho imediato do elemento raiz chamado Coleta e copiar a pasta de propriedades de entrada. O nó cria um elemento (CollectionName) e fornece o nome (que se tornará o nome do canal). O nó, então, itera por meio de cada uma das pastas de número da mensagem de entrada e cria uma pasta de mensagens com um nome exclusivo para cada uma. Para as pastas de cadeia, o nó cria elementos exclusivos em vez de pastas. O nó configura um valor de ambiente local para cada elemento para identificá-lo como um contêiner de caracteres.
  3. Pedido de CICS: O nó CICSRequest é configurado para as estruturas de dados de canal. O nó chama o programa CICS WMBCHAN1 e espera por uma resposta do canal.
  4. ProcessChannel: O nó Compute ProcessChannel cria uma nova mensagem de saída XMLNSC com base na coleta de mensagens produzida pelo nó CICSRequest. O nó copia o valor de número inteiro a partir da soma da pasta de mensagens para o código XML, junto com três atributos de cadeia: longestString, channelName e mirrorTran.
  5. CICSCHANNEL_OUT: O nó CICSCHANNEL_OUT MQOutput coloca a mensagem na fila de saída CICSCHANNEL_OUT.

Modo de mensagem única: Uma mensagem é enviada para a fila CICS_SINGLEMSG_IN.

  1. CICSSingleMsg_IN: O nó CICSSingleMsg_IN MQInput obtém a mensagem de entrada a partir da fila de entrada.
  2. AddLENames: O nó AddLENames Compute configura o nome para o canal e o nome para o contêiner que mantém os dados da mensagem de entrada. O nó também configura o contêiner para ser um contêiner de caractere.
  3. Pedido de CICS: O nó CICSRequest é configurado para as estruturas de dados de canal. O nó chama o programa CICS WMBCHAN1 e espera por uma resposta do canal.
  4. ProcessChannel: O nó Compute ProcessChannel cria uma nova mensagem de saída XMLNSC com base na coleta de mensagens produzida pelo nó CICSRequest. O nó copia o valor de número inteiro a partir da pasta de mensagens, soma, para o código XML, junto com três atributos de sequência: longestString, channelName e mirrorTran.
  5. CICSCHANNEL_OUT: O nó CICSCHANNEL_OUT MQOutput coloca a mensagem na fila de saída CICSCHANNEL_OUT.

A amostra CICS Transaction Server for z/OS Channel Connectivity demonstra como ler uma mensagem de entrada, construir uma coleção de mensagens, conectar-se ao CICS e direcionar um programa baseado em canal. A coleta de mensagens de retorno é transformada em XML e liberada para uma fila.

Para obter mais informações, consulte Trabalhando com o CICS Transaction Server for z/OS na documentação do WebSphere Message Broker.

Agora é possível concluir as etapas de configuração descritas em Configurando a Amostra Channel Connectivity do CICS Transaction Server for z/OS antes de executar a amostra.

Voltar para Home da Amostra