JMS Trigger

Conheça o trigger e saiba como utilizá-lo.

Micaella Mazoni avatar
Escrito por Micaella Mazoni
Atualizado há mais de uma semana

O JMS Trigger precisa de uma infraestrutura dedicada. Por segurança, na primeira vez que você for utilizar o trigger, faça uma solicitação de ativação através do suporte no chat.


Para utilizar esse trigger, é necessário entrar em contato com a nossa Equipe de Suporte para obter a liberação.       

Digamos que você queira utilizar um trigger para realizar a subscrição em uma fila de mensagens. Dessa maneira, você consegue disparar um pipeline que habilita o consumo de uma mensagem por vez.

Commit com garantia de entrega

Com a propriedade Auto Commit desabilitada, é possível dar o ack da mensagem somente após a execução bem sucedida do pipeline. Para o broker IBM MQ, é necessário manter esse campo sempre habilitado, pois não é suportado controlar o ack ou o reject da mensagem.

As filas suportadas são:

  • ActiveMQ

  • Oracle Advanced Queue

  • Tibco EMS

  • SQS

  • IBM MQ

 
Dê uma olhada nos parâmetros de configuração do trigger:   

     

Active MQ e Tibco EMS

  • Connection String: conexão string JMS no formato tcp://{host}:{port}

  • Destination: nome da FILA/ASSUNTO para a qual você precisa mandar alguma mensagem.

  • Name of the QUEUE or TOPIC: nome único dado à fila.

  • Durable Subscriber: consumidor de mensagem que recebe todas as mensagens publicadas em um tópico, incluindo aquelas publicadas enquanto o subscriber está inativo; quando essa opção estiver ativada, é necessário informar o nome específico do subscriber no campo Subscriber Name.

  • Set Client ID: propriedade utilizada especificamente por um provedor JMS para identificar a conexão JMS do cliente e permitir que ela seja durável.

  • Message Selector: se a sua aplicação precisa filtrar as mensagens recebidas, você pode utilizar um selecionador de mensagens JMS API, que permite ao consumidor de mensagens especificar quais delas interessam - o message selector repassa a filtragem para o provedor JMS.  

  • Maximum Timeout: preencha o tempo máximo de execução do trigger.

    

SQS

  • Connection String: conexão string JMS no formato https://{REGION_ENDPOINT}/queue.|api-domain|/{YOUR_ACCOUNT_NUMBER}/{YOUR_QUEUE_NAME}

  • Region: região da AWS onde a fila está instalada.

  • Destination: nome da FILA/ASSUNTO para a qual você precisa mandar alguma mensagem.

  • Name of the QUEUE: nome único dado à fila.

  • Set Client ID: propriedade utilizada especificamente por um provedor JMS para identificar a conexão JMS do cliente e permitir que ela seja durável.

  • Maximum Timeout: preencha o tempo máximo de execução do trigger.

IMPORTANTE:  o Visibility Timeout no Broker SQS deve ter um valor maior ou igual que o timeout do pipeline. Isso é necessário, porque o Broker SQS é um sistema distribuído e não remove a mensagem após o seu consumo, já que não há garantia de que ela foi realmente consumida. Se o Visibility Timeout não é configurado dentro das condições mencionadas, pode ocorrer o reenvio de uma mensagem em processamento. O Broker SQS envia a mensagem novamente caso ela não receba ACK ou REJECT dentro do tempo configurado em Visibility Timeout. Para entender melhor, clique aqui.
​       

Oracle AQ

  • hostname: o nome do host da conexão string JMS.

  • port: número da porta de acesso ao servidor Oracle.

  • sid: nome do banco de dados Oracle. 

  • jdbcDriver: Oracle jbdc driver (ex.: THIN ou OCI).

  • destination: nome da FILA/ASSUNTO para a qual você precisa mandar alguma mensagem.

  • Name of the QUEUE or TOPIC: nome único dado à fila.

  • Durable Subscriber: consumidor de mensagem que recebe todas as mensagens publicadas em um tópico, incluindo aquelas publicadas enquanto o subscriber está inativo; quando essa opção estiver ativada, é necessário informar o nome específico do subscriber no campo Subscriber Name.

  • Set Client ID: propriedade utilizada especificamente por um provedor JMS para identificar a conexão JMS do cliente e permitir que ela seja durável

  • Message Selector: se a sua aplicação precisa filtrar as mensagens recebidas, você pode utilizar um selecionador de mensagens JMS API, que permite ao consumidor de mensagens especificar quais delas interessam - o message selector repassa a filtragem para o provedor JMS.

  • Maximum Timeout: preencha o tempo máximo de execução do trigger.

    

IBM MQ

Não há suporte ainda para autenticação usando TLS.

  • Hostname: nome do host da conexão string JMS.

  • Port: número da porta de acesso ao servidor Oracle.

  • Channel Name: nome do canal a ser utilizado na comunicação do broker.

  • Queue Manager: nome do gerenciador de filas do IBM MQ.

  • Destination: nome da FILA/ASSUNTO para a qual você precisa mandar alguma mensagem.

  • Name of the QUEUE or TOPIC: nome único dado à fila.

  • Durable Subscriber: consumidor de mensagem que recebe todas as mensagens publicadas em um tópico, incluindo aquelas publicadas enquanto o subscriber está inativo; quando essa opção estiver ativada, é necessário informar o nome específico do subscriber no campo Subscriber Name.

  • Set Client ID: propriedade utilizada especificamente por um provedor JMS para identificar a conexão JMS do cliente e permitir que ela seja durável.

  • Message Selector: se a sua aplicação precisa filtrar as mensagens recebidas, você pode utilizar um selecionador de mensagens JMS API, que permite ao consumidor de mensagens especificar quais delas interessam - o message selector repassa a filtragem para o provedor JMS.

  • Maximum Timeout: tempo máximo de execução do trigger.

Se você deseja disparar o trigger, será necessário publicar o pipeline.

Veja como realizar o deploy:

- Clique em "Runtime", localizado na parte superior da tela.
- Selecione o ambiente, que pode ser test ou prod.
- Clique em "Criar uma nova implantação".
- Selecione o pipeline com a sua versão e capacidade.
- Clique em "Confirmar".
​    

Quando for disparado, o pipeline receberá um payload similar ao seguinte:

{
  "data":"mensagem"
}

              

  • data: conteúdo da mensagem recebida

   
O JMS Trigger suporta o consumo de mensagens de forma paralela - o número de execuções simultâneas configurado na hora do deploy de um pipeline será exatamente o mesmo para a fila/tópico JMS.

Portanto, se forem configurados 10 execuções simultâneas no deploy, 10 execuções simultâneas serão criados de tópico/fila JMS.

Isso aumenta o throughput de consumo das mensagens, além de permitir ao usuário ter controle de quantas execuções simultâneas ele poderá criar.

Antigamente havia apenas uma execução simultânea por trigger.
​              

IMPORTANTE: caso você realize o deploy de um pipeline com o trigger JMS atrelado a um tópico, é preciso configurar apenas uma execução simultânea na hora de realizar o deploy.

Respondeu à sua pergunta?