Decidindo Quais Nós Utilizar

O inclui um grande número de nós de processamento de mensagens que você pode utilizar em seus fluxos de mensagens. Fornece também uma interface que você pode utilizar para definir seus próprios nós, conhecidos como nós definidos pelo usuário.

Sua decisão sobre quais nós utilizar depende do processamento que deseja executar em suas mensagens. . Os nós internos podem ser considerados em várias categorias e são exibidos no agrupado nestas categorias (embora este agrupamento não tenha nenhum efeito em sua operação). Você também pode categorizar nós definidos pelo usuário da mesma forma. As categorias são:

Entrada e Saída
Os nós de entrada e saída definem pontos no fluxo de mensagens para os quais os clientes enviam mensagens (nós de entrada como MQInput) e a partir dos quais recebem mensagens (nós de saída, como MQOutput). Os aplicativos clientes interagem com esses nós, colocando mensagens ou obtendo mensagens, o recurso de E/S que é especificado pelo nó como a origem ou o destino das mensagens. Embora um fluxo da mensagem deva incluir ao menos um nó de entrada, não é necessário incluir um nó de saída.
  • Se estiver criando um fluxo de mensagens que deseja implementar em um intermediário, é necessário incluir pelo menos um nó de entrada para receber mensagens. (Para obter informações adicionais, consulte Utilizando Mais de Um Nó Input.) O nó de entrada escolhido depende da origem das mensagens de entrada:
    MQInput
    Se as mensagens chegarem no intermediário em uma fila do .
    MQeInput
    Se as mensagens chegarem no intermediário a partir de clientes do .
    SCADAInput
    Se as mensagens forem enviadas por um dispositivo de telemetria.
    HTTPInput
    Se as mensagens forem enviadas por um cliente de serviços da Web.
    Real-timeInput ou Real-timeOptimizedFlow
    Se as mensagens forem enviadas por um aplicativo JMS ou multicast.
    Nó Input Definido pelo Usuário
    Se a origem da mensagem for um cliente ou aplicativo que utiliza um protocolo ou transporte diferente.
    Nó Input
    Se estiver criando um fluxo de mensagens que deseja incorporar em outro fluxo de mensagens (um subfluxo) que você não implementará como um fluxo de mensagens independente, será necessário incluir pelo menos um nó Input para receber mensagens no subfluxo.

    Uma instância do nó Input representa um terminal de entrada. Por exemplo, se você tiver incluído uma instância do nó Input, o ícone do subfluxo mostrará um terminal de entrada que pode ser conectado a outros nós no fluxo principal da mesma forma que é conectado qualquer outro nó.

    É possível implementar apenas fluxos de mensagens que tenham pelo menos um nó de entrada. Se seu fluxo de mensagens não contiver um nó de entrada, não será possível adicioná-lo ao arquivo archive do intermediário. O nó de entrada pode estar no fluxo principal, ou em um fluxo de mensagens que esteja incorporado no fluxo principal.
  • Se desejar enviar as mensagens produzidas pelo fluxo de mensagens para um aplicativo de destino, poderá incluir um ou mais nós de saída. O nó escolhido dependerá do transporte através do qual o aplicativo de destino espera receber aquelas mensagens:
    Publication
    Se desejar distribuir as mensagens utilizando a rede de publicação/assinatura para aplicativos assinantes do intermediário em todos os protocolos suportados. Um nó Publication é um nó de saída que utiliza destinações de saída que são identificadas pelos assinantes cujas assinaturas correspondem às características da mensagem atual.
    MQOutput
    Se o aplicativo de destino espera receber mensagens em uma fila do ou na fila responder para do especificada na mensagem de entrada MQMD.
    MQReply
    Se o aplicativo de destino espera receber mensagens na fila responder para do especificada na mensagem de entrada MQMD
    MQeOutput
    Se o aplicativo de destino espera receber mensagens através do
    SCADAOutput
    Se um dispositivo de telemetria for o destino das mensagens de saída e o nó Publication não for apropriado
    HTTPReply
    Se as mensagens forem para um cliente de serviços da Web
    HTTPRequest
    Se o fluxo de mensagens interagir com um cliente de serviços da Web
    Real-timeOptimizedFlow
    Se o aplicativo de destino for um aplicativo JMS ou multicast
    Nó de Saída Definido pelo Usuário
    Se o destino for um cliente ou aplicativo que utiliza um protocolo ou transporte diferente

    O nó UDPSend é uma amostra de trabalho de um nó definido pelo usuário que fornece esta função.

    Nó Output
    Se estiver criando um fluxo de mensagens que deseja incorporar em outro fluxo de mensagens (um subfluxo) que você não implementará como um fluxo de mensagens independente, será necessário incluir pelo menos um nó Output para propagar mensagens para nós subseqüentes que serão conectados ao subfluxo.

    Uma instância do nó Output representa um terminal de saída. Por exemplo, se você tiver incluído duas instâncias do nó Output, o ícone do subfluxo mostrará dois terminais de saída que podem ser conectados a outros nós no fluxo principal da mesma forma que é conectado qualquer outro nó.

Manipulação, Aperfeiçoamento e Transformação de Mensagens

A maioria das empresas possui aplicativos que podem ter sido desenvolvidos há muitos anos, em sistemas diferentes, utilizando linguagens de programação diferentes e métodos de comunicação diferentes. torna desnecessário que aplicativos entendam essas diferenças, porque fornece a capacidade de configurar fluxos de mensagens que transformam mensagens de um formato para outro.

Por exemplo, nomes próprios são mantidos em vários formatos em aplicativos diferentes. Com o sobrenome primeiro ou por último, com ou sem iniciais dos nomes do meio, com letras maiúsculas ou minúsculas: essas são apenas algumas das permutações. Como você pode configurar seu fluxo de mensagens para conhecer os requisitos de cada aplicativo, cada mensagem pode ser transformada no formato correto sem modificar o aplicativo de envio ou de recebimento.

Você pode trabalhar com o conteúdo da mensagem para atualizá-la de várias formas. Suas opções aqui podem depender se o fluxo de mensagens tiver que tratar mensagens predefinidas (modeladas) ou mensagens de autodefinição (por exemplo, XML), ou ambas.

Um fluxo de mensagens pode reconstruir uma mensagem completamente, convertê-la de um formato em outro (se formato significar a ordem de campos, ordem de bytes, linguagem, etc), remover conteúdo da mensagem ou introduzir dados específicos nela. Por exemplo, um nó pode interagir com um banco de dados para recuperar informações adicionais ou para armazenar uma cópia da mensagem (inteira ou parcial) no banco de dados para processamento off-line.

Os exemplos a seguir mostram o quão importante podem ser as transformações de mensagens:

  • Um aplicativo de entrada de pedido possui um ID de Fabricante no corpo da mensagem, mas o aplicativo de estoque de seu parceiro espera que ele esteja no cabeçalho da mensagem. A mensagem é direcionada a um fluxo de mensagens que conhece os dois formatos diferentes e pode portanto reformatar as informações conforme necessário.
  • Um aplicativo de entrada de dados cria mensagens contendo informações de troca de estoque. Alguns aplicativos que recebem esta mensagem precisam das informações como são fornecidas, mas outros precisam de informações adicionais na mensagem sobre a proporção PE (Price to Earnings). As mensagens de troca de estoque são direcionadas para um fluxo de mensagens que transmite a mensagem inalterada para alguns nós de saída, mas calcula e inclui informações extras para os outros. O fluxo de mensagens faz isso consultando o preço de mercado em um banco de dados e utiliza esse valor e as informações de troca na mensagem original para calcular o valor PE antes de passar adiante a mensagem atualizada.

Você também pode criar fluxos de mensagens que interagem entre si utilizando esses nós. Embora a operação padrão de um fluxo de mensagens não influencie a operação de outro fluxo de mensagens, você pode impor esta situação ao configurar seus fluxos de mensagens para armazenar e recuperar informações em uma origem externa como um banco de dados.

Compute
Você pode manipular o conteúdo, transformar a mensagem de alguma maneira e interagir com um banco de dados para modificar o conteúdo da mensagem ou o conteúdo do banco de dados e transmitir uma ou mais mensagens novas utilizando o nó Compute. Você pode utilizar este nó para manipular mensagens predefinidas e de autodefinição.

Utilize o editor ESQL para criar um módulo ESQL, específico desse nó, que contenha as instruções que definem as ações executadas na mensagem ou no banco de dados. Não utilize o código ESQL que foi desenvolvido para ser utilizado em um nó Compute em qualquer outro tipo de nó.

Você pode controlar a forma que o banco de dados é acessado por esse nó, especificando informações sobre usuário e senha para o DataSource especificado na propriedade do nó. Nos sistemas distribuídos, utilize o comando para inicializar e manter esses valores.

No z/OS, utilize o ID da tarefa iniciada pelo intermediário para acessar o banco de dados.

Se seus requisitos de manipulação de mensagens forem complexos, é recomendável concluí-los em um único nó Compute. Alguns nós Compute mais complexos têm melhor desempenho do que um grande número de nós mais simples, porque o intermediário analisa a mensagem na entrada de cada nó Compute.

Mapping
Você pode criar uma nova mensagem a partir da mensagem de entrada, mapeando o conteúdo de elementos da mensagem de saída a partir de elementos da mensagem de entrada ou do conteúdo do banco de dados, utilizando o nó Mapping. Você também pode extrair partes da mensagem e, opcionalmente, alterar seu conteúdo, para criar uma nova mensagem de saída que é uma cópia parcial da mensagem recebida pelo nó. O nó Mapping identifica apenas mensagens predefinidas.

Você pode controlar a forma que o banco de dados é acessado por esse nó, especificando informações sobre usuário e senha para o DataSource especificado na propriedade do nó. Nos sistemas distribuídos, utilize o comando para inicializar e manter esses valores.

No z/OS, utilize o ID da tarefa iniciada pelo intermediário para acessar o banco de dados.

Utilizando um editor de mapeamento, você pode desenvolver mapeamentos para executar simples manipulações em mensagens predefinidas no nó Mapping. Não utilize os mapeamentos desenvolvidos para serem utilizados em um nó Mapping em qualquer outro tipo de nó.

Extract
Você pode utilizar o nó Extract para criar uma nova mensagem de saída a partir de elementos especificados da mensagem de entrada. Você pode extrair partes da mensagem e, opcionalmente, alterar seu conteúdo, para criar uma nova mensagem de saída que é uma cópia parcial da mensagem recebida pelo nó. O nó Extract identifica apenas mensagens predefinidas.

Utilizando um editor de mapeamento, você pode desenvolver mapeamentos para executar simples manipulações em mensagens predefinidas no nó Extract. Não utilize os mapeamentos desenvolvidos para serem utilizados em um nó Extract em qualquer outro tipo de nó.

Database
Utilize o nó Database para interagir com um banco de dados identificado pelas propriedades do nó. O nó Database trata mensagens predefinidas e de autodefinição. Utilizando um editor ESQL, você pode codificar funções ESQL para atualizar o conteúdo do banco de dados a partir da mensagem, inserir novas informações no banco de dados e excluir informações do banco de dados, talvez com base nas informações da mensagem. Não utilize o código ESQL desenvolvido para ser utilizado em um nó Database em qualquer outro tipo de nó.

Esse nó fornece uma interface muito flexível com um amplo intervalo de funções. Ele também possui propriedades que podem ser utilizadas para controlar a forma com que a interação participa de transações.

Você pode controlar a forma que o banco de dados é acessado por esse nó, especificando informações sobre usuário e senha para o DataSource especificado na propriedade do nó. Nos sistemas distribuídos, utilize o comando para inicializar e manter esses valores.

No z/OS, utilize o ID da tarefa iniciada pelo intermediário para acessar o banco de dados.

Você pode atualizar apenas um banco de dados a partir deste nó; não pode atualizar nenhum conteúdo de mensagem. Se desejar atualizar conteúdo de mensagem, utilize o nó Compute ou o nó Mapping.

DataDelete, DataInsert, DataUpdate
Os nós DataDelete, DataInsert e DataUpdate são formatos especializados do nó Database que fornecem um único modo de interação (exclusão de uma ou mais linhas, inserção de uma ou mais linhas ou atualização de uma entre mais linhas existentes, respectivamente). Os nós DataDelete, DataInsert e DataUpdate tratam apenas mensagens predefinidas. Utilize um editor de mapeamento para desenvolver mapeamentos para executar estas funções. Não utilize os mapeamentos desenvolvidos para esses nós em nenhum outro tipo de nó. Esses nós também permitem controlar as características de transações das atualizações que eles executam.

Você pode controlar a forma que os bancos de dados são acessados por esses nós, especificando informações sobre usuário e senha para o DataSource especificado na propriedade do nó. Nos sistemas distribuídos, utilize o comando para inicializar e manter esses valores.

No z/OS, utilize o ID da tarefa iniciada pelo intermediário para acessar o banco de dados.

Você pode atualizar apenas bancos de dados desses nós: não pode atualizar nenhum conteúdo de mensagem. Se desejar atualizar conteúdo de mensagem, utilize o nó Compute ou o nó Mapping.

Warehouse
O nó Warehouse fornece uma interface de armazenamento que pode ser utilizada para armazenar toda ou parte da mensagem em um banco de dados, por exemplo, por razões de auditoria. O nó Warehouse trata apenas mensagens predefinidas. Utilize um editor de mapeamento para desenvolver mapeamentos para executar esta ação. Não utilize os mapeamentos desenvolvidos para utilização em um nó Warehouse em qualquer outro tipo de nó.

Você pode controlar a forma que um banco de dados é acessado por esse nó, especificando informações sobre usuário e senha para o DataSource especificado na propriedade do nó. Nos sistemas distribuídos, utilize o comando para inicializar e manter esses valores.

No z/OS, utilize o ID da tarefa iniciada pelo intermediário para acessar o banco de dados.

Você pode atualizar apenas um banco de dados a partir deste nó; não pode atualizar nenhum conteúdo de mensagem. Se desejar atualizar conteúdo de mensagem, utilize o nó Compute ou o nó Mapping.

definidos pelo usuário
Você também pode incluir um nó definido pelo usuário para interagir com um banco de dados.

Você pode controlar a forma que os bancos de dados são acessados por esse nó, especificando informações sobre usuário e senha para o DataSource especificado na propriedade do nó. Nos sistemas distribuídos, utilize o comando para inicializar e manter esses valores.

No z/OS, utilize o ID da tarefa iniciada pelo intermediário para acessar o banco de dados.

A tabela a seguir resume o que pode ser atualizado nestes nós.

Atualizar Banco de Dados? Atualizar Mensagem? Atualizar Ambiente Local? Conjunto de Mensagens Requerido?
Compute Sim Sim Sim Não
Database Sim Não Sim Não
DataDelete Sim Não Sim Sim
DataInsert Sim Não Sim Sim
DataUpdate Sim Não Sim Sim
Extract Sim Sim Sim Sim
Mapping Sim Sim Sim Sim
Warehouse Sim Não Sim Sim
Tomada de Decisão

Você pode utilizar nós que determinam a ordem de processamento e o controle de fluxo, no fluxo de mensagens de várias formas, para tomar decisões sobre como as mensagens são processadas pelo fluxo. O roteamento é independente da transformação da mensagem, embora a rota tomada por uma mensagem possa determinar exatamente qual transformação será executada nela.

Por exemplo, um aplicativo de transferência de dinheiro sempre envia mensagens para um outro aplicativo. Você pode decidir que todas as mensagens com valor de transferência com mais de $ 10.000 também devem ser enviadas para um segundo aplicativo, para permitir que todas as transações com valores altos sejam registradas.

Em outro exemplo, um clube de automobilismo nacional oferece um serviço principal para membros específicos para pedidos acima de um valor limite. A maioria dos pedidos são roteados pelos canais normais, mas se o número da filiação e o valor do pedido corresponderem a determinados critérios, o pedido receberá um tratamento especial.

Você também pode estabelecer uma opção de roteamento mais dinâmica criando informações de roteamento adicionais na mensagem quando ela é processada. Conjuntos opcionais de regras são configurados para receber mensagens de acordo com valores (destinos) definidos na mensagem. Você pode estabelecer estas regras para que uma mensagem seja processada por um ou mais dos conjuntos opcionais de regra, em um pedido determinado pelo conteúdo da mensagem incluído.

Utilize os nós a seguir para tomar decisões sobre a rota que uma mensagem seguirá através do fluxo de mensagens:

Check
Você pode examinar as características da mensagem para determinar sua estrutura e rotear a mensagem dependendo de se ela atende às características requeridas.
Filter
Você pode codificar uma instrução ESQL para determinar o próximo nó para o qual a mensagem é enviada por este nó. Não utilize o código ESQL desenvolvido para ser utilizado em um nó Filter em qualquer outro tipo de nó.

Os terminais do nó são true, false, unknown e failure; a mensagem será propagada para o terminal true, se o teste for bem-sucedido, e para o terminal false, se ele falhar. Se a instrução não puder ser resolvida (por exemplo, testa o valor de um campo que não aparece na mensagem de entrada), a mensagem será propagada para o terminal unknown. Se for detectado qualquer erro, a mensagem será propagada para o terminal failure.

O teste na instrução ESQL pode depender do conteúdo da mensagem, do conteúdo do banco de dados ou de uma combinação destes.

Se você fizer referência a um banco de dados, poderá controlar o modo no qual ele é acessado por esse nó, especificando as informações sobre o usuário e a senha para cada origem de dados definida no registro no sistema do intermediário. Nos sistemas distribuídos, utilize o comando para inicializar e manter esses valores.

No z/OS, utilize o ID da tarefa iniciada pelo intermediário para acessar o banco de dados.

Utilize este nó preferencialmente ao nó Compute para fornecer esta função; embora você possa configurar o nó Compute para controlar a seleção e o roteamento de mensagens, o nó Filter tem melhor desempenho.

FlowOrder
Você pode conectar os terminais deste nó para forçar a mensagem a ser processada por uma seqüência de nós, seguida por uma segunda seqüência de nós.
RouteToLabel e Label
Você pode definir uma lista de destinos em um nó Compute nos quais o nó RouteToLabel age, que interroga os destinos e transmite a mensagem para o nó Label correspondente.
ResetContentDescriptor
Você pode definir novas propriedades de mensagens que são utilizadas quando o fluxo de bits da mensagem é analisado em seguida por um nó subseqüente no fluxo de mensagens.
Intercalando Pedidos

Você pode intercalar pedidos relacionados e respostas, utilizando os nós AggregateControl, AggregateReply e AggregateRequest. Utilize estes nós para gerar vários pedidos em resposta a uma mensagem de entrada, e para controlar e coordenar as respostas que são recebidas em resposta a estes pedidos, e combinar as informações fornecidas pelas respostas para continuar o processamento.

Tratamento e Relatório de Erros

Você pode utilizar os nós que afetam o tratamento e o relatório de erros:

Trace
Ao incluir um nó Trace, você pode gerar uma ou mais entradas de rastreio para registrar o que está acontecendo no fluxo de mensagens neste ponto.
TryCatch
Ao incluir um TryCatch, você pode controlar o processamento de erros quando são emitidas exceções.
Throw
Quando um nó Throw é incluído, você pode forçar uma exceção a ser emitida e especificar a identidade da exceção para facilitar o diagnóstico do problema.

Com exceção dos nós Compute, Extract e Mapping, a mensagem de entrada recebida por um nó e a mensagem de saída enviada pelo nó são idênticas.

Conceitos relacionados
Fluxos de Mensagem
Suporte ao Aplicativo para o Usuário Final
Árvore Ambiente Local

Tarefas relacionadas
Configurando o DB2
Projetando um Fluxo de Mensagens
Acessando Bancos de Dados em Fluxos de Mensagens
Criação de um Fluxo de Mensagens
Definindo o Conteúdo do Fluxo de Mensagens
Utilizando Nós para Tomada de Decisão
Implementando Aplicativos de Fluxo de Mensagens

Referências relacionadas
Comando mqsisetdbparms
Nós Internos
Suporte ao Aplicativo para o Usuário Final