JMS Trigger
Descubra mais sobre o JMS Trigger e saiba como utilizá-lo na Digibee Integration Platform.
Digamos que você queira utilizar um trigger para realizar a subscrição em uma fila de mensagens. Ao usar o JMS Trigger, 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.
Filas suportadas e parâmetros de configuração
As filas suportadas são:
Oracle Advanced Queue
Tibco EMS
SQS
IBM MQ
Dê uma olhada nas opções de configuração do trigger. Parâmetros suportados por expressões Double Braces estão marcados com (DB).
Auto Commit
Quando ativada, a estratégia de auto commit JMS será usada. Se não for ativada, o commit manual será usado.
False
Booleano
Destination
Define o parâmetro (Queue ou Topic).
Queue
String
Name of the Queue or Topic
Nome único dado ao Queue ou Topic selecionado.
Test
String
Which JMS Provider Will Be Used
Seleciona a fila desejada (Oracle Advanced Queue, Tibco EMS, SQS ou IBM MQ).
SQS
String
Dependendo da fila, parâmetros diferentes podem ser acessados:
Oracle AQ
Hostname
O nome do host da conexão string JMS.
N/A
String
SID - Oracle Site Identifier
Nome do banco de dados Oracle.
N/A
String
Port
Número da porta de acesso ao servidor Oracle.
N/A
Inteiro
JDBC Type
Driver Oracle jbdc (ex.: THIN ou OCI).
N/A
String
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.
False
Booleano
Subscriber Name
Nome do subscriber específico necessário ao ativar a opção Durable Subscriber no Oracle Advanced Queue.
N/A
String
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.
False
Booleano
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.
N/A
String
Maximum Timeout
Tempo máximo (em milissegundos) para o pipeline processar informação antes de retornar uma resposta. Limite: 900000.
30000
Inteiro
Allow Redelivery of Messages
Se a opção estiver ativada, permite o reenvio da mensagem em caso de falha do Pipeline Engine.
False
Booleano
Tibco EMS
Connection String
Conexão string JMS no formato tcp://{host}:{port}.
N/A
String
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.
False
Booleano
Subscriber Name
Nome do subscriber específico necessário ao ativar a opção Durable Subscriber no Tibco EMS.
N/A
String
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.
False
Booleano
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.
N/A
String
Maximum Timeout
Tempo máximo (em milissegundos) para o pipeline processar informação antes de retornar uma resposta. Limite: 900000.
30000
Inteiro
Allow Redelivery of Messages
Se a opção estiver ativada, permite o reenvio da mensagem em caso de falha do Pipeline Engine.
False
Booleano
SQS
Claro, aqui está a tabela organizada conforme solicitado:
Role ARN
O Amazon Resource Name (ARN) da role a ser assumida. Usado em políticas de fila ou do IAM para definir qual role pode interagir com a fila SQS.
Este parâmetro é compatível com o uso de Globals.
N/A
String
Role Session Name
Um nome que identifica a sessão da role assumida. Ajuda a rastrear quem (ou o quê) assumiu a role e realizou ações específicas na fila SQS.
Este parâmetro é compatível com o uso de Globals.
N/A
String
Expiration (in ms)
A duração (em milissegundos) antes que as credenciais temporárias expirem.
900
Inteiro
Connection String
Conexão string JMS no formato _https://{REGION_ENDPOINT}/queue. /{YOUR_ACCOUNT_NUMBER}/{YOUR_QUEUE_NAME}_.
tcp://localhost:61616
String
Region
Região da AWS onde a fila está instalada.
N/A
String
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.
False
Booleano
Message Selector
Se sua aplicação precisar filtrar mensagens recebidas, você poderá usar um seletor de mensagens da API JMS, permitindo que o consumidor de mensagens especifique quais delas são importantes.
N/A
String
Maximum Timeout
Tempo máximo (em milissegundos) para o pipeline processar informação antes de retornar uma resposta. Limite: 900000.
30000
Inteiro
Allow Redelivery of Messages
Se a opção estiver ativada, permite o reenvio da mensagem em caso de falha do Pipeline Engine.
False
Booleano
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 mais informações, veja a documentação externa.
IBM MQ
Hostname
Nome do host da conexão string JMS.
N/A
String
Channel Name
Nome do canal a ser utilizado na comunicação do broker.
N/A
String
Queue Manager
Nome do gerenciador de filas do IBM MQ.
N/A
String
Port
Número da porta de acesso ao servidor Oracle.
N/A
Inteiro
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.
False
Booleano
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.
False
Booleano
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.
N/A
String
Maximum Timeout
Tempo máximo (em milissegundos) para o pipeline processar informação antes de retornar uma resposta. Limite: 900000.
30000
Integer
Allow Redelivery of Messages
Se a opção estiver ativada, permite o reenvio da mensagem em caso de falha do Pipeline Engine.
False
Booleano
JMS Trigger em ação
Se você deseja disparar o trigger, será necessário publicar o pipeline. Veja como realizar o deploy:
Clique em Run, 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 consumers configurado na hora do deploy de um pipeline será exatamente o mesmo para a fila/tópico JMS.
Portanto, se forem configurados 10 consumers no deploy, 10 consumers 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 quantos consumidores simultâneos ele poderá criar.
Antes havia apenas um consumer por trigger.
Atualizado
Isto foi útil?