Utilize o nó JMSOutput para enviar mensagens para destinos JMS.
Este tópico contém as seguintes seções:
O nó JMSOutput age como um produtor de mensagens JMS e pode publicar todos os seis tipos de mensagens que são definidos na Java™ Message Service Specification, versão 1.1. As mensagens são publicadas utilizando chamadas de método, que são descritas na especificação JMS.
O nó JMSOutput está contido no repositório JMS da paleta e é representado no WebSphere Message Broker Toolkit pelo seguinte ícone:
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 fluxos de mensagens que manipulam mensagens recebidas de conexões com provedores JMS devem sempre ser iniciados com um nó JMSInput. Se você incluir o nó JMSOutput em um fluxo de mensagens, não precisará incluir um nó JMSInput; mas se não incluir um nó JMSInput, será necessário incluir o nó MQJMSTransform para transformar a mensagem no formato esperado pelo nó JMSOutput.
Se estiver propagando mensagens JMS e criando um fluxo de mensagens para utilizar como um subfluxo, utilize uma instância do nó JMSOutput como o último nó para criar um terminal de saída para o subfluxo.
SET OutputRoot.JMSTransport.Transport_Folders.Message_MetaData.PayloadType=Valor de Carga Útil
Para obter mais informações sobre a árvore de mensagens JMS e os valores de carga útil, consulte Representação de Mensagens no Transporte JMS.
CREATE PROCEDURE CreateJMSDestinationList() BEGIN
SET OutputLocalEnvironment.Destination.JMSDestinationList.DestinationData[1] = 'jndi://TestDestQueue1';
SET OutputLocalEnvironment.Destination.JMSDestinationList.DestinationData[2] = 'jndi://TestDestQueue2';
SET OutputLocalEnvironment.Destination.JMSDestinationList.DestinationData[3] = 'jndi://TestDestQueue3';
END;
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.
O emissor de uma mensagem poderá querer que o destinatário responda à mensagem. Nesse caso, a mensagem JMSOutput pode tratar a mensagem de saída como uma resposta, e roteá-la de acordo com o valor obtido da propriedade JMSReplyTo da mensagem de solicitação. Você pode modificar o valor da propriedade JMSReplyTo em MbMessage; por exemplo, utilizando um nó Compute ou um nó JavaCompute. Esta ação permite o roteamento dinâmico de mensagens do nó JMSOutput. O nó envia a mensagem para o nome do destino JMS que está configurado no campo JMSReplyTo da Árvore MbMessage.
queue://QM_mn2/myJMSQueue4
Nesse
caso, o valor é a representação específica do provedor JMS de um destino JMS para o
provedor JMS do WebSphere MQ.jndi://jmsQ4
em que jmsQ4 é o nome do
objeto administrado por JNDI.O desempenho pode ser afetado quando você usa este método, por causa da necessidade de consultar o objeto administrado no JNDI.
Para permitir que o nó JMSOutput configure a propriedade JMSReplyTo dinamicamente na mensagem de saída, deixe o campo Responder ao Destino em branco na guia Básico e configure o valor JMSReplyTo em MbMessage utilizando um nó Compute ou um nó JavaCompute.
O nó resolve o nome do objeto administrado pela JNDI que é fornecido no Tópico de Publicação ou na Fila de Destino e envia a mensagem a esse destino JMS.
A função cciOutputMessageCallback pode ser registrada como um retorno de chamada e invocada sempre que uma mensagem é enviada por um nó do JMSOutput. Consulte o cciOutputMessageCallback.
Se o estado da saída de usuário for ativo, a função cciOutputMessageCallback será invocada para cada mensagem de saída que é enviada com êxito a partir de um nó do JMSOutput no qual o retorno de chamada é registrado.
Se o nó fornecer informações de WrittenDestination na árvore LocalEnvironment, o retorno de chamada será chamado após a criação destas informações. Consulte o Usando Variáveis LocalEnvironment com Nós JMSOutput e JMSReply.
Conecte um nó Compute ao terminal de Saída de um nó JMSOutput e interrogue a Lista WrittenDestination. Para informações adicionais, consulte Visualizando a Árvore Mensagem Lógica na Saída do Rastreio.
WrittenDestination = (
JMS = (
DestinationData = (
destinationName = 'queue://jmsQueue1'
initialContext = 'com.sun.jndi.fscontext.RefFSContextFactory'
JMSMessageID = ID:414d512054657374514d2020202020206ab98b4520017a02'
JMSCorrelationID = 'ABCDEFGHIJKLMNOPQRSTUVW'
)
)
)
Quando incluir um nó JMSOutput em um fluxo de mensagens, o valor configurado para o Modo de Transação define se as mensagens são enviadas sob o ponto de sincronização.
install_dir/bin/ JMSSwitch.dll
XAOpenString=Initial Context,location JNDI,Optional_parms
ThreadOfControl=THREAD
JMSSwitch
XAOpenString=Initial Context,location JNDI,Optional_parms
ThreadOfControl=THREAD
XAResourceManager:
Name=Jms_Provider_Name
SwitchFile=/install_dir/bin/JMSSwitch.so
XAOpenString=Initial Context,location JNDI,Optional_parms
ThreadOfControl=THREAD
Em que: Os parâmetros opcionais são separados por vírgula e posicionais. Portanto, quaisquer parâmetros que estejam faltando devem ser representados por uma vírgula.
install_dir/classes/xarecovery.jar
install_dir/bin
Para obter informações adicionais, consulte a seção Guia de Administração do Sistema do Centro de Informações Online do WebSphere MQ Versão 7.
O controle do ponto de sincronização para o provedor JMS é gerenciado com a coordenação do ponto de sincronização RRS do gerenciador de filas do broker. Não é necessário modificar o arquivo .ini .
Se o nó JMSOutput usar BEA WebLogic como o provedor JMS e os nós precisarem participar de um fluxo de mensagens coordenado, consulte Disponibilizando o Cliente do Provedor JMS para os Nós JMS.
Conecte o terminal In do nó JMSOutput ao nó a partir do qual as mensagens de saída são roteadas.
Conecte o terminal Out do nó JMSOutput a outro nó no fluxo de mensagens para processar a mensagem posteriormente, para processar erros ou para enviar a mensagem para um destino adicional.
Quando tiver colocado uma instância do nó JMSOutput 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 |
---|---|
Entrada | O terminal de entrada que aceita a mensagem para processamento pelo nó. |
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 tiver sido colocada com sucesso no destino de saída (tópico ou fila). |
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 se você precisar inserir um valor quando nenhum padrão estiver definido), a coluna com cabeçalho C indica se a propriedade é configurável (você pode alterar o valor quando incluir o fluxo de mensagens no arquivo BAR para implementá-lo).
Propriedade | M | A | O padrão | Descrição |
---|---|---|---|---|
Nome de nó | Não | Não | O tipo de nó, JMSOutput | O nome do nó. |
Descrição Breve | 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 | Padrão | Descrição | Propriedade do Comando mqsiapplybaroverride |
---|---|---|---|---|---|
Fila de Destino | Não | Sim | O nome da fila para a qual o nó publica mensagens de saída. Se o nó JMSOutput tiver que ser utilizado para enviar mensagens ponto a ponto, digite o nome da Fila de Destino para o nome da fila JMS listado no arquivo de ligações. | destinationQueueName | |
Tópico de Publicação | Não | Sim | O nome do tópico no qual o nó publica
mensagens.
|
tópico | |
Responder ao destino (Reply to destination) | Não | Sim | O nome do destino de JMS para o qual o aplicativo de recebimento deve enviar
uma mensagem de resposta. Para retornar uma mensagem de resposta a esse destino JMS, o nome do destino JMS deve ser conhecido para o domínio do provedor JMS que é utilizado pelo cliente receptor. Você pode digitar um destino JMS, que pode ser uma fila de assinatura
ou um tópico de destino. O valor padrão é vazio e, neste caso, a mensagem de saída JMS pode ser considerada um datagrama. Se o campo estiver em branco, o nó JMSOutput não esperará uma resposta do cliente JMS de recebimento. |
replyToDestination | |
Enviar para a lista de destino no ambiente local | Não | Sim | Limpo | Quando você tiver construído uma lista de destinos JMS no ambiente local, selecione esta caixa de opção para usar a lista de destino. Se você não selecionar esta caixa de opção, o nó utilizará o destino JMS configurado. Se você selecionar esta caixa de opção mas não tiver criado uma lista de destinos de JMS no ambiente local, o nó usará o destino de JMS configurado. | useDistList |
Propriedade | M | A | 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 você selecione um nome na lista, a propriedade Gerador de Contexto Inicial é atualizada automaticamente com a classe Java relevante. Se você digitar seu próprio nome de provedor JMS, também deverá digitar um valor para o Gerador de Contexto Inicial. O nome deve corresponder ao nome de um serviço configurável definido para o broker para o qual o fluxo de mensagens é implementado. Alternativamente, é possível especificar o serviço configurável JMSProviders. | |
Depósito de Informações do Provedor de Contexto Inicial | Não | Sim | com.sun.jndi.fscontext. RefFSContextFactory | Essa propriedade é o ponto de início de 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, também deverá digitar um valor para o Gerador de Contexto Inicial. O valor padrão é com.sun.jndi.fscontext.RefFSContextFactory, que define o depósito de informações de contexto inicial baseado em arquivo para o provedor JMS do WebSphere MQ. Se o nó estiver configurado para usar seu próprio provedor JMS, e a Propriedade de serviços configuráveis correspondente da definição do mqsichangeproperties tiver o conjunto de atributos InitialContextFactory, isso substituirá a configuração do nó. |
initialContextFactory |
Ligações JNDI de 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 JNDI que são utilizados pelo nó JMSOutput. Ao digitar um valor para Ligações JNDI de Local (Location JNDI
Bindings), assegure-se de que ele esteja de acordo com as seguintes instruções:
Para obter informações sobre a construção de arquivo de ligações de objetos administrados por JNDI, consulte a documentação que é fornecida com o provedor 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, isso substituirá a configuração no nó. |
locationJndiBindings | |
Nome da Connection Factory | Não | Sim | O nome da connection utilizada pelo nó JMSOutput para criar uma conexão com o provedor JMS. Esse nome já deve existir no arquivo de ligações. A Connection factory pode ser uma QueueConnectionFactory JMS ou uma TopicConnectionFactory JMS, mas ela deve corresponder ao modelo de mensagem que é usado pelo nó. Como alternativa, você pode especificar o ConnectionFactory JMS genérico, que pode ser utilizado para destinos de fila JMS ou de tópico JMS. | connectionFactoryName |
Propriedade | M | A | O padrão | Descrição |
---|---|---|---|---|
Novo ID de Correlação | Não | Sim | Se o nó JMSOutput for necessário para gerar um novo ID de Correlação para a mensagem, selecione Novo ID de Correlação. Se deixar a caixa de opção desmarcada, o ID de Correlação da mensagem de saída é obtido no campo JMSCorrelationID na seção JMSTransport_Header_Values da árvore de mensagens. | |
Modo de Transação | Sim | Não | Não | Essa propriedade controla se a mensagem é recebida em uma
transação JMS. Os valores válidos são Sim e
Não.
|
Modo de Entrega | Não | Sim | Não Persistente | Essa propriedade controla o modo de persistência que um
provedor JMS utiliza para uma mensagem. Os valores
válidos são:
|
Expiração da Mensagem (Message Expiration (ms)) | Não | Sim | 0 | Esta propriedade controla o período de tempo, em milissegundos,
durante o qual o provedor JMS mantém a mensagem JMS de saída.
O valor padrão, 0,
é utilizado para indicar que a mensagem não deve expirar. Selecione Herdar
do Cabeçalho ou digite um inteiro que representa um número de milissegundos. Se você selecionar Herdar do Cabeçalho,
a propriedade herdará o valor do campo JMSExpiry na mensagem JMS,
que está localizada no seguinte local:
|
Prioridade de Mensagem | Não | Sim | 4 | Esta propriedade designa a importância relativa à mensagem e pode ser
utilizada para seleção de mensagem por um aplicativo cliente JMS de recebimento
ou um nó JMSOutput. Selecione um valor entre 0 (prioridade mais baixa) e 9 (prioridade mais alta) ou selecione Herdar do Cabeçalho. O valor padrão é 4,
que indica prioridade média.
As prioridades no intervalo de 0 a
4 estão relacionadas à entrega típica.
As prioridades no intervalo de 5 a 9
estão relacionadas a graus de entrega expedida. Se você selecionar Herdar
do Cabeçalho, a propriedade herdará o valor do campo JMSPriority
na mensagem JMS, que está localizada no seguinte local:
|
Tipo de Mensagem | Não | Sim | Determine o tipo de mensagem de saída da Árvore de Mensagens JMS | Selecione um valor na lista para configurar o tipo de mensagem JMS que é produzida pelo nó JMSOutput. Se você não configurar um valor para esta propriedade, o nó assumirá o tipo de saída do campo
PayLoadType de metadados na árvore de mensagens JMS, conforme indicado pelo valor padrão, Determinar o tipo de mensagem de saída da Árvore de Mensagens JMS. Os valores válidos são:
|
Propriedade | M | A | O padrão | Descrição | Propriedade do Comando mqsiapplybaroverride |
---|---|---|---|---|---|
Validar | Não | Sim | Herdar | Essa propriedade controla se a validação ocorre. Os valores válidos são Nenhum, Conteúdo, Conteúdo e Valor e Herdar. | validateMaster |
Ação de Defeito | 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 Rastreio do Usuário, Registro de Erros Local, Exceção e Lista de Exceções. |
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. |