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 |
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.
A coleta da mensagem é construída no ESQL usando um nó Compute. O nó Compute conclui as seguintes tarefas:
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';
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.
O diagrama a seguir mostra o 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.
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.
Modo de mensagem única: Uma mensagem é enviada para a fila CICS_SINGLEMSG_IN.
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.