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âmetroDescriçãoValor padrãoTipo 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âmetroDescriçãoValor padrãoTipo 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âmetroDescriçãoValor padrãoTipo 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âmetroDescriçãoValor padrãoTipo 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âmetroDescriçãoValor padrãoTipo 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:

  1. Clique em Run, localizado na parte superior da tela.

  2. Selecione o ambiente, que pode ser test ou prod.

  3. Clique em Criar uma nova implantação.

  4. Selecione o pipeline com a sua versão e capacidade.

  5. 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.

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