JMS Trigger
Descubra mais sobre o JMS Trigger e saiba como utilizá-lo na Digibee Integration Platform.
Este trigger precisa de uma infraestrutura dedicada. Por questões de segurança, é 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. 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)
.
Parâmetro | Descrição | Valor padrão | Tipo de dado |
---|---|---|---|
Account | Define a conta que será usada pelo trigger. | N/A | String |
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
Parâmetro | Descrição | Valor padrão | Tipo de dado |
---|---|---|---|
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
Parâmetro | Descrição | Valor padrão | Tipo de dado |
---|---|---|---|
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:
Parâmetro | Descrição | Valor padrão | Tipo de Dado |
---|---|---|---|
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
Ainda não há suporte para autenticação usando TLS.
Parâmetro | Descrição | Valor padrão | Tipo de dado |
---|---|---|---|
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: 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.
Caso você realize o deploy de um pipeline com o trigger JMS atrelado a um tópico, é preciso configurar apenas 1 consumer na hora de realizar o deploy.
Atualizado