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.