Leia o tópico de conceitos sobre os nós do fluxo de mensagens.
O WebSphere Message Broker inclui um grande número de nós de processamento de mensagens que você pode utilizar em seus fluxos de mensagens.Também fornece 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 você deseja executar em suas mensagens. Os nós internos podem ser considerados em várias categorias e são exibidos no workbench 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:
A
utilização dos fluxos de mensagens que contêm nós MQeInput no WebSphere
Message Broker Versão
6.0
está obsoleta. Projete novamente seus fluxos de mensagens para remover os nós MQe e substitui-los
por nós MQ configurados para suas próprias especificações e coordenados
com sua configuração de Gateway MQe. Para saber
detalhes adicionais, consulte a seção Migrando um Fluxo de Mensagens que Contém Nós do WebSphere MQ Everyplace.
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ó input. Se seu fluxo de mensagens não contiver um nó input, não será possível incluí-lo ao arquivo arquivado do intermediário. O nó input pode estar no fluxo principal, ou em um fluxo de mensagens que esteja incorporado no fluxo principal.
É possível utilizar mais de um nó input em um fluxo de mensagens. Para obter mais informações, consulte Utilizando Mais de Um Nó Input.
A utilização de fluxos de mensagens que contêm nós MQeOutput no WebSphere
Message Broker Versão
6.0 está obsoleta. Projete novamente seus fluxos de mensagens para remover os nós MQe e substitui-los
por nós MQ configurados para suas próprias especificações e coordenados
com sua configuração de Gateway MQe. Para saber
detalhes adicionais, consulte a seção Migrando um Fluxo de Mensagens que Contém Nós do WebSphere MQ Everyplace.
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ó.
A maioria das empresas possuem aplicativos que podem ter sido desenvolvidos muitos anos atrás, em sistemas diferentes, utilizando linguagens de programação diferentes e métodos de comunicação diferentes. O WebSphere Message Broker torna desnecessário que aplicativos entendam essas diferenças, porque fornece a capacidade de configurar fluxos de mensagens que transformam mensagens de um formato em 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:
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.
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ó. Utilize o comando mqsisetdbparms para inicializar e manter esses valores.
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ó. Utilize o comando mqsisetdbparms para inicializar e manter esses valores.
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.
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ó. Utilize o comando mqsisetdbparms para inicializar e manter esses valores.
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ó.
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ó.
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ó. Utilize o comando mqsisetdbparms para inicializar e manter esses valores.
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.
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ó. Utilize o comando mqsisetdbparms para inicializar e manter esses valores.
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.
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ó. Utilize o comando mqsisetdbparms para inicializar e manter esses valores.
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.
Se quiser transformar uma mensagem XML de entrada em outro formato utilizando as folhas de estilo XMLT, utilize o nó XMLTransformation. É obrigatório que os dados sejam analisados em uma mensagem XML. O resultado da transformação é apresentado como uma mensagem BLOB. A folha de estilo, utilizando as regras definidas nela, pode classificar os dados; selecione os elementos de dados a serem incluídos ou excluídos com base em alguns critérios e transforme os dados em algum outro formato de dados.
O mecanismo de transformação Xalan-Java (Processador Xalan-java XSLT) é utilizado como o mecanismo de transformação subjacente. Para obter detalhes sobre XMLT, consulte Transformações W3C XSL.
É possível implementar folhas de estilo e arquivos XML em grupos de execução do intermediário, para facilitar a manutenção de folhas de estilo e de arquivos XML.
O nó JMSMQTransform pode ser utilizado para enviar mensagens para fluxos de mensagens legados e para interoperar com a publicação e assinatura do WebSphere MQ JMS e do WebSphere Message Broker.
O nó MQJMSTransform pode ser utilizado para enviar mensagens para fluxos de mensagens legados e para interoperar com a publicação e assinatura do WebSphere MQ JMS e do WebSphere Message Broker.
Utilize o nó MQOptimizedFlow para substituir um fluxo de mensagens de Publicação/Assinatura que consiste em um nó MQInput conectado a um nó Publication e que utiliza JMS sobre o transporte do WebSphere MQ. O nó MQOptimizedFlow não pode ser utilizado em sistemas z/OS.
Utilize o nó MQOptimizedFlow para aprimorar o desempenho, principalmente onde um único publicador produz uma publicação persistente para um único assinante.
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ó. Utilize o comando mqsisetdbparms para inicializar e manter esses valores.
A tabela a seguir resume o que pode ser atualizado nestes nós.
Nó | 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 |
É possível utilizar nós que determinam a ordem e o fluxo de controle no fluxo de mensagens de várias maneiras para tomar decisões sobre como as mensagens são processadas pelo fluxo. Também é possível utilizar nós (TimeoutControl e TimeoutNotification) que determinam a hora e a freqüência de ocorrência de eventos no fluxo de mensagens. 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:
O nó Validate substitui o nó Verificar que está obsoleto no WebSphere Message Broker Versão 6.0 e em releases subseqüentes. O nó Validate funciona da mesma maneira que o nó Check, mas possui propriedades adicionais de Validação para permitir a validação do conteúdo da mensagem por analisadores que suportam esse recurso.
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 fizer referência a um banco de dados, você 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 mqsisetdbparms 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.
Você pode querer que uma tarefa do batch seja executada todos os dias em uma hora específica ou pode querer que informações sejam processadas e publicadas em intervalos fixos (por exemplo, taxas de câmbio são calculadas e enviadas a bancos) ou pode querer executar uma ação de recuperação especificada se determinadas transações não forem concluídas dentro de um horário definido. Em todos esses casos, dois nós de tempo limite (TimeoutControl e TimeoutNotification) são fornecidos.
Mais de um nó TimeoutControl pode ser associado a cada nó TimeoutNotification.
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.
Você pode utilizar os nós que afetam o tratamento e o relatório de erros:
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.