Use o nó JMSReceive para receber mensagens das filas JMS no meio de um fluxo de mensagens. As filas JMS são acessadas por meio de uma conexão com um provedor JMS.
O nó JMSReceive age como um consumidor de mensagens JMS e pode receber todos os seis tipos de mensagens definidos na Java™ Message Service Specification, versão 1.1.
O nó JMSReceive está contido no repositório JMS da paleta e é representado no WebSphere® Message Broker Toolkit pelo seguinte ícone:
O nó JMSReceive recebe e propaga mensagens com uma árvore de mensagens JMS. É possível usar um nó JMSReceive no meio de um fluxo de mensagens, ao contrário de um nó JMSInput, que você pode usar apenas como o primeiro nó em um fluxo de mensagens. A árvore de mensagens de saída de um nó JMSReceive é construída combinando-se a árvore de entrada com a árvore de resultados da mensagem JMS recebida. É possível especificar quais dados da mensagem de entrada são combinados com a árvore de resultados usando o painel de propriedades Resultado.
É possível configurar as propriedades do nó JMSReceive para controlar a maneira como as mensagens JMS são recebidas.
O nó JMSReceive é síncrono e, portanto, bloqueia o fluxo de mensagens até que ele receba uma mensagem da fila JMS definida. Se nenhuma mensagem for recebida no período de tempo limite especificado, a mensagem de entrada será propagada para o terminal de saída Sem Mensagem. Se o valor de Tempo Limite for 0, o nó não aguardará indefinidamente para receber uma mensagem JMS e portanto receberá a próxima mensagem apenas se houver uma disponível imediatamente.
Os fluxos de mensagens que manipulam mensagens que são recebidas das conexões com provedores JMS devem sempre ser iniciados com um nó JMSInput ou incluir um nó JMSReceive no meio do fluxo. Se você incluir um nó de saída que contenha um nó JMSReceive, ele pode ser qualquer um dos nós de saída suportados (incluindo nós de saída definidos pelo usuário); não é necessário incluir um nó JMSOutput.
O nó JMSReceive manipula apenas cenários de ponto a ponto com filas JMS. Para subscrever para um tópico, use o nó JMSInput.
Você só pode visualizar informações sobre amostras quando usa o centro de informações que está integrado ao WebSphere Message Broker Toolkit ou o centro de informações on-line. Você só poderá executar amostras quando usar o centro de informações que está integrado ao WebSphere Message Broker Toolkit.
Os serviços configuráveis são definidos para vários provedores JMS. Você pode escolher um dos serviços predefinidos ou pode criar um novo serviço para um novo provedor ou para um dos provedores existentes. Os serviços predefinidos estão listados em Propriedades de Serviços Configuráveis.
Utilize o comando mqsireportproperties para visualizar as propriedades do provedor e o comando mqsichangeproperties para configurar ou modificar as propriedades.
Para cada mensagem recebida com êxito, o nó JMSReceive roteia a mensagem para o terminal Out. Se essa ação falhar, a mensagem será repetida. Se o limite de tentativas for atingido, a mensagem será roteada para o terminal de Falha. Você pode conectar nós ao terminal de falha para manipular essa condição.
Se o nó não puder receber uma mensagem da fila JMS dentro do período de tempo limite especificado na propriedade Tempo Limite, a mensagem de entrada será roteada para o terminal Sem Mensagem.
Se o processamento não continuar após o reinício do broker ou do grupo de execução, verifique o Log de Implementação para descobrir uma causa, tal como um analisador incorreto sendo especificado nas propriedades do nó. Corrija o problema e reimplemente o fluxo de mensagens. Se a mensagem em si não for válida, remova a mensagem da fila de entrada para retomar o processamento.
Quando você incluir um nó JMSReceive em um fluxo de mensagens, o valor configurado para o Modo de Transação define se as mensagens são recebidas no ponto de sincronização. Consulte o Configurando para Transações JMS Coordenadas.
Quando tiver colocado uma instância do nó JMSReceive em um fluxo de mensagens, você poderá configurá-lo; consulte Configurando um Nó do Fluxo de Mensagens. As propriedades do nó são exibidas na visualização Propriedades. Todas as propriedades obrigatórias que não tiverem um valor padrão definido serão marcadas com um asterisco.
Terminal | Descrição |
---|---|
Defeito | O terminal de saída para o qual a mensagem é encaminhada se um ocorrer erro. Mesmo que a propriedade Validação (Validation) esteja definida, as mensagens propagadas para esse terminal não serão validadas. |
Saída | O terminal de saída para o qual a mensagem será roteada se ela for recebida com êxito. |
Nenhuma Mensagem | O terminal de saída para o qual a mensagem de entrada será roteada se nenhuma mensagem estiver disponível na fila. A mensagem de saída que é propagada para o terminal Sem Mensagem é construída a partir da mensagem de entrada. |
As tabelas a seguir descrevem as propriedades do nó. A coluna com cabeçalho M indica se a propriedade é obrigatória (marcada com um asterisco caso seja necessário digitar um valor quando nenhum padrão for definido); a coluna com cabeçalho C indica se a propriedade é configurável (você poderá alterar o valor quando incluir o fluxo de mensagens ao arquivo BAR para implementá-lo).
Propriedade | M | C | O padrão | Descrição |
---|---|---|---|---|
Nome do Nó | Não | Não | O tipo de nó, JMSReceive | O nome do nó. |
Descrição curta | Não | Não | Uma breve descrição do nó. | |
Descrição Longa | Não | Não | Texto que descreve a finalidade do nó no fluxo de mensagens. |
Propriedade | M | C | O padrão | Descrição | Propriedade do Comando mqsiapplybaroverride |
---|---|---|---|---|---|
Fila de origem | Não | SIM | Selecionado | O nome da fila a partir da qual o nó recupera mensagens que chegam. | sourceQueueName |
Propriedade | M | C | O padrão | Descrição | Propriedade do Comando mqsiapplybaroverride |
---|---|---|---|---|---|
Nome do provedor JMS | SIM | Não | WebSphere MQ | Selecione um nome de fornecedor JMS na lista ou digite um nome de sua preferência. Quando selecionar um nome na lista, a propriedade Factory de Contexto Inicial será atualizada automaticamente com a classe Java relevante. Se você digitar seu próprio nome de provedor JMS, também deverá digitar um valor para a Fábrica de Contexto Inicial. O nome deve corresponder ao nome de um serviço configurável que é definido para o broker para o qual você implementa o fluxo de mensagens. Alternativamente, é possível especificar o serviço configurável JMSProviders. | |
Fábrica de contexto inicial | Não | SIM | com.sun.jndi.fscontext. RefFSContextFactory | O ponto inicial para um espaço de nomes JNDI. Um aplicativo JMS utiliza o contexto inicial para obter e consultar a connection factory e objetos de fila ou tópico para o provedor JMS. Se você selecionar um nome de provedor JMS na lista em Nome de Provedor JMS, a propriedade Gerador de Contexto Inicial é atualizada automaticamente com a classe Java relevante. Se você digitar seu próprio nome de provedor JMS, deverá digitar também um valor para Gerador de Contexto Inicial. O valor padrão é com.sun.jndi.fscontext.RefFSContextFactory, que define o Gerador de Contexto Inicial baseado em arquivo para o provedor de JMS WebSphere MQ. Se o nó for configurado para utilizar seu próprio Provedor JMS e a Propriedade de serviços configuráveis correspondentes da definição mqsichangeproperties tiver o conjunto de atributos InitialContextFactory, isso substituirá a configuração no nó. |
initialContextFactory |
Ligações JNDI do local | Não | SIM | O caminho do sistema ou local LDAP para o arquivo de ligações O arquivo de ligações contém definições para objetos administrados de JNDI
que são utilizados pelo nó JMSReceive. Quando você digita
um valor para Ligações de JNDI de Local,
verifique se ele está de acordo com as seguintes instruções:
Para obter informações sobre a construção de arquivo de ligações de objetos JNDI administrados, consulte a documentação do provedor de JMS. Se o nó estiver configurado para usar seu próprio Provedor JMS e a Propriedade de serviços configuráveis correspondente da definição mqsichangeproperties tiver o atributo jndiBindingsLocation configurado, esse atributo substituirá a configuração no nó. |
locationJndiBindings | |
Nome de fábrica da conexão | Não | SIM | O nome da connection utilizada pelo nó JMSReceive para criar uma conexão com o provedor JMS. Este nome deve existir no arquivo de ligações. | connectionFactoryName | |
Tempo-limite | SIM | SIM | 2000 | O tempo máximo, em milissegundos, para aguardar pelo nó JMSReceive para consumir uma mensagem
a partir da fila JMS. Configure a propriedade Tempo Limite para especificar quantos milissegundos aguardar para que uma mensagem seja recebida. O valor Tempo Limite não pode ser negativo. Um valor igual a 0 significa que o nó aguarda que uma mensagem esteja disponível e recebe a próxima mensagem apenas se uma estiver disponível imediatamente. Se você não fornecer um valor, o valor padrão de 2000 milissegundos será usado. |
receiveTimeout |
As propriedades Análise de Mensagem de Resposta do nó JMSReceive para os domínios MRM, XMLNSC, XMLNS, MIME, BLOB, XML e JSON são descritas na tabela a seguir.
Propriedade | M | C | O padrão | Descrição |
---|---|---|---|---|
Domínio de mensagem | Não | Não | O domínio que é usado para analisar a mensagem do fluxo de bits fornecido do recurso externo. | |
Conjunto de Mensagens | Não | Não | O nome do conjunto de mensagens no qual a mensagem de resposta está definida. | |
Tipo de mensagem | Não | Não | O nome da mensagem de resposta. | |
Formato de Mensagem | Não | Não | O nome do formato físico da mensagem de resposta. |
Propriedade | M | C | O padrão | Descrição |
---|---|---|---|---|
Cronometragem de análise | SIM | Não | On Demand | Essa propriedade controla quando uma mensagem de resposta é analisada. Os valores válidos são:
|
Construir árvore utilizando tipos de dados de esquema XML | SIM | Não | Não Selecionada | Esta propriedade controla se o analisador XMLNSC cria elementos da sintaxe na árvore de mensagens com tipos de dados obtidos do esquema XML. É possível selecionar essa propriedade apenas se você configurar Validar como Conteúdo ou Conteúdo e Valor. |
Utilizar analisador compacto XMLNSC para domínio XMLNS | SIM | Não | Não Selecionada | Essa propriedade controla se o Analisador Compacto XMLNSC (XMLNSC Compact Parser) é utilizado para mensagens no Domínio XMLNS (XMLNS Domain). Se você configurar essa propriedade, os dados da mensagem de resposta serão exibidos em XMLNSC nos nós que são conectados ao terminal de saída quando o Domínio de Mensagem das propriedades do cabeçalho MQRFH2 de entrada ou da Análise de Mensagem de Entrada for XMLNS. |
Reter conteúdo misto | SIM | Não | Não Selecionada | Essa propriedade controla se o analisador XMLNSC cria elementos na árvore de mensagens ao encontrar texto misto em uma mensagem de resposta. Se você selecionar a caixa de opções, serão criados elementos para texto misto. Se você desmarcar a caixa de opções, texto misto será ignorado e nenhum elemento será criado. |
Reter comentários | SIM | Não | Não Selecionada | Essa propriedade controla se o analisador XMLNSC cria elementos na árvore de mensagens ao encontrar comentários em uma mensagem de resposta. Se você selecionar a caixa de opções, serão criados elementos para comentários. Se você desmarcar a caixa de opções, comentários serão ignorados e nenhum elemento será criado. |
Reter instruções de processamento | SIM | Não | Não Selecionada | Essa propriedade controla se o analisador XMLNSC cria elementos na árvore de mensagens ao encontrar instruções de processamento em uma mensagem de resposta. Se você selecionar a caixa de opções, serão criados elementos para instruções de processamento. Se você desmarcar a caixa de opções, instruções de processamento serão ignoradas e nenhum elemento será criado. |
Elementos opacos | Não | Não | Em Branco | Essa propriedade é utilizada para especificar uma lista de elementos na mensagem de entrada que devem ser analisados em segundo plano pelo analisador XMLNSC. A análise de ignorados será desempenhada apenas se a validação não estiver ativada (ou seja, se Validar for Nenhum); as entradas especificadas em Elementos Ignorados serão ignoradas se a validação estiver ativada. |
Propriedade | M | C | O padrão | Descrição |
---|---|---|---|---|
Propriedade do aplicativo | Não | Não | O seletor de mensagem que filtra mensagens de acordo com o valor da
propriedade do aplicativo. Se o provedor JMS tiver que filtrar mensagens com base nas propriedades da mensagem configuradas pelo aplicativo cliente JMS original, insira uma sequência de seletores para Propriedade do Aplicativo, especificando o nome da propriedade e as condições de seleção, por exemplo, OrderValue > 200. Deixe Propriedade do Aplicativo em branco se não desejar que o nó faça uma seleção com base na propriedade do aplicativo. |
|
Registro de Data e Hora | Não | Não | O seletor de mensagem que filtra mensagens de acordo com o
JMSTimestamp. Se o provedor JMS tiver que filtrar mensagens que foram geradas em horários específicos, insira uma sequência de seletores para Registro de data e hora, em que o valor é um horário Java em milissegundos não qualificado; por exemplo, 105757642321. Qualifique o seletor com operadores, como =, BETWEEN ou AND. Deixe Registro de Data e Hora em branco se não desejar que o nó faça uma seleção com base no JMSTimeStamp. |
|
Modo de entrega | Não | Não | Todos | O seletor de mensagem que filtra as mensagens de acordo com o modo
de entrega da mensagem. Se o provedor de JMS tiver que filtrar mensagens com base no valor de cabeçalho do JMSDeliveryMode nas mensagens JMS, selecione uma opção para Modo Entrega a partir da lista:
|
Priority | Não | Não | O seletor de mensagem que filtra as mensagens de acordo com a
prioridade da mensagem. Se o provedor JMS tiver que filtrar mensagens com base no valor do cabeçalho JMSPriority na mensagem JMS, insira uma sequência de seletores para Prioridade. Os valores válidos para Prioridade vão de 0 (o mais baixo) a 9 (o mais alto). Por exemplo, insira = 5 para receber mensagens de prioridade 5, > 4 para receber mensagens com uma prioridade maior que 4, ou BETWEEN 4 AND 8 para receber mensagens com uma prioridade no intervalo 4 - 8. Deixe Prioridade em branco se não desejar que o nó faça uma seleção com base na JMSPriority. |
|
Tipo de mensagem | Não | Não | O seletor de mensagem que filtra as mensagens de acordo com o type de
mensagem. Se o provedor JMS for obrigatório para filtrar mensagens baseadas no valor do cabeçalho JMSType na mensagem JMS, insira um sequência de seletores para Tipo de Mensagem. Os valores válidos para Tipo de Mensagem são:
Deixe Tipo de Mensagem em branco se não desejar que o nó faça uma seleção com base no JMSType. |
|
ID da Mensagem | Não | Não | O seletor de mensagem que filtra as mensagens de acordo com o ID de
mensagem. Se o provedor JMS tiver que filtrar mensagens com base no cabeçalho JMSMessageID, insira uma sequência de seletores para ID de Mensagem. Por exemplo, insira > WMBRK123456 para retornar mensagens em que o ID de Mensagem seja maior que WMBRK123456. Deixe ID da Mensagem em branco se não desejar que o nó faça uma seleção com base no JMSMessageID. |
|
Reentregue | Não | Não | Se o provedor JMS tiver que filtrar mensagens
com base no cabeçalho JMSRedelivered, insira uma sequência de seletores para Reentregue:
|
|
ID de Correlação | Não | Não | O seletor de mensagem que filtra as mensagens de acordo com o ID de
correlação. Se o provedor JMS tiver que filtrar mensagens com base no cabeçalho JMSCorrelationID, insira uma sequência de seletores para ID de Correlação. Por exemplo, = WMBRKABCDEFG retorna mensagens com um ID de Correlação que corresponde a este valor. Deixe ID de Correlação em branco se não desejar que o nó faça uma seleção com base em JMSCorrelationID. |
Propriedade | M | C | O padrão | Descrição |
---|---|---|---|---|
Modo de Transação | SIM | Não | Automático | Essa propriedade controla se a mensagem é enviada em uma transação JMS. Os valores válidos são Sim, Não e Automático. Selecione Não para enviar a mensagem usando uma sessão JMS não transacional. Selecione Sim para enviar a mensagem usando uma sessão JMS transacional. A transação JMS pode ser local ou coordenada por XA. Para usar uma transação coordenada por XA usando uma sessão JMS XA, você também deve selecionar a propriedade de fluxo de mensagens Transação Coordenada nas propriedades do arquivo BAR. Selecione Automático se desejar que a transacionalidade da mensagem seja herdada da configuração do modo de Transação no nó de Entrada no início do fluxo. |
Propriedade | M | C | O padrão | Descrição |
---|---|---|---|---|
Somente Procura | Não | Não | Não Selecionada | Essa propriedade booleana controla se as mensagens são consumidas ou pesquisadas. Se as mensagens forem pesquisadas, o nó lerá a mensagem, mas não a removerá da fila. Se essa propriedade for selecionada, Modo de Transação será desativado e a transacionalidade não será usada para pesquisa. |
Reconfigurar Procura | Não | Não | Não Selecionada | Essa propriedade booleana determina o comportamento da pesquisa do nó JMSReceive. Se essa propriedade for selecionada, o nó pesquisará mensagens a partir do início da fila. Se essa propriedade estiver desmarcada, o nó pesquisará mensagens a partir de sua posição atual na fila. Reconfigure o local do navegador na fila. Se essa propriedade estiver desmarcada, ações de procura subsequentes procurarão a próxima mensagem na fila. Se essa propriedade for selecionada, o nó procurará a partir do início da fila, procurando a mesma mensagem que seria consumida a partir da fila. |
Propriedade | M | C | O padrão | Descrição |
---|---|---|---|---|
Local de dados de Saída | Não | Não | $OutputRoot | O local na árvore de mensagens de saída para o qual o nó JMSReceive envia a saída. A raiz da entrada é primeiramente copiada para a raiz de saída e, em seguida, os dados do resultado são copiados para o local na árvore de saída especificado pela Localização de Dados de Saída. O valor padrão, $OutputRoot, substitui a árvore de mensagens copiada com os dados do resultado e não propaga nenhuma das mensagens de entrada. Por exemplo, um valor de $OutputRoot/XMLNS/MyData insere os dados da mensagem do resultado na árvore de mensagens de saída, mesclando ou sobrescrevendo a árvore de mensagens. É possível especificar a Localização dos Dados de Saída como um ESQL ou uma expressão XPATH. Consulte o Combinando uma Mensagem de Resultado com uma Mensagem Recebida. |
Local de dados de Resultado | Não | Não | $ResultRoot | A localização da mensagem recebida da fila JMS que é
copiada para o campo Localização de
Dados da Saída na mensagem de saída. Por exemplo, o padrão, $ResultRoot, insere a mensagem do resultado na árvore de saída na localização especificada pela Localização de Dados da Saída. Um valor de $ResultRoot/JMSMap/map/MyMapItem coloca apenas MyMapItem de uma mensagem JMSMap na localização especificada pela Localização de Dados da Saída. É possível especificar Localização de Dados do Resultado como um ESQL ou uma expressão XPATH. Consulte o Combinando uma Mensagem de Resultado com uma Mensagem Recebida. |
Copiar ambiente local | Não | Não | Selecionado | Essa propriedade especifica se o ambiente local é copiado para a
mensagem de saída.
|
Propriedade | M | C | O padrão | Descrição | Propriedade do Comando mqsiapplybaroverride |
---|---|---|---|---|---|
Validar | SIM | SIM | Nenhum(a) | Essa propriedade controla se a validação ocorre. Os valores válidos são:
|
validateMaster |
Ação de falha | Não | Não | Exceção | Essa propriedade controla o que acontecerá se a validação falhar. Você pode configurar essa propriedade
somente se configurar Validar como Conteúdo ou Conteúdo
e Valor. Os valores válidos são:
|
Propriedade | M | P | Default | Descrição |
---|---|---|---|---|
Eventos | Não | Não | Nenhum | Eventos definidos para o nó são exibidos nesta guia. Por padrão, nenhum evento de monitoramento é definido em um nó do fluxo de mensagens. Utilize Incluir, Editar,
e Excluir para criar, alterar ou excluir eventos de monitoração no nó; consulte Configurando fontes de eventos de monitoramento utilizando propriedades de monitoramento para detalhes. É possível ativar e desativar eventos mostrados aqui selecionando ou desmarcando a caixa de opções Ativado. |
Você pode substituir dinamicamente os valores no ambiente local da mesma maneira que configura valores em outros elementos de uma mensagem. Consulte o Substituições do Ambiente Local para o Nó de JMSReceive.