JMS

Descubra mais sobre o componente JMS e saiba como utilizá-lo na Digibee Integration Platform.

O JMS realiza operações em brokers de mensageria que suportem API JMS. Atualmente suportamos IBM MQ, Oracle AQ e Tibco EMS.

Parâmetros

Dê uma olhada nas opções de configuração do componente. Parâmetros suportados por expressões Double Braces estão marcados com (DB).

Parâmetro
Descrição
Valor padrão
Tipo de dado

Account

Conta do tipo Basic que será utilizada para autenticação no broker JMS configurado.

N/A

String

Message

Conteúdo da mensagem a ser enviada. Nesse campo pode ser informado qualquer valor de texto.

N/A

String

Destination

Tipo de destino para onde a mensagem será enviada (Queue ou Topic).

Topic

String

Name

Nome da fila ou tópico.

Test

String

JMS Provider

Provedor JMS que será utilizado. Opções disponíveis: IBM MQ, Oracle AQ e Tibco EMS.

Tibco EMS

String

Binary Content

Se a opção estiver ativada, a mensagem recebida é um base64 dos bytes que você precisa enviar; do contrário, a mensagem será enviada como texto.

False

Booleano

Charset

Se a mensagem que você precisa enviar é binária, então você deve selecionar o charset para a mensagem.

N/A

String

Raw Value

Se a opção estiver ativada, a mensagem é um raw value e precisa ser enviada como JSON (ex.: a palavra 'teste' será enviada como "teste").

False

Booleano

Fail On Error

Se a opção estiver ativada, a execução do pipeline com erro será interrompida; do contrário, a execução do pipeline continua, mas o resultado vai mostrar um valor falso para a propriedade "success".

False

Booleano

Advanced Configurations

Se a opção estiver ativada, você pode acessar as seguintes configurações: Correlation ID, Expiration, Priority, Type e JMS Object Properties.

False

Booleano

Correlation ID

Um cliente de JMS pode utilizar o header JMS Correlation ID para associar uma mensagem a outra (para solicitações de solicitação/resposta). Esse campo pode conter um valor de string arbitrário. A utilização desse campo é opcional.

N/A

String

Expiration

Tempo de expiração da mensagem dentro da fila ou tópico (Time To Live). Em milissegundos.

N/A

Inteiro

Priority

Define a prioridade da mensagem. Um valor de 0 a 4 indica um intervalo de prioridade normal (sendo 4 o valor padrão); os valores de 5 a 9 indicam prioridade acentuada.

4

Inteiro

Type

Esse campo pode ser utilizado para definir algum valor no envio da mensagem, que poderá ser utilizado para filtrá-la.

N/A

String

JMS Object Properties

N/A

N/A

Existem algumas propriedades específicas para cada broker:

Tibco EMS

Parâmetro
Descrição
Valor Padrão
Tipo de Dado

Connection String

Conexão string JMS no formato tcp://{host}:{port}.

tcp://localhost:61616

String

Oracle AQ

Parâmetro
Descrição
Valor Padrão
Tipo de Dado

Host Name

Nome do host da conexão string JMS.

N/A

String

Port

Número da porta para Oracle.

N/A

String

Sid

Oracle database sid (identificador de site).

N/A

String

JBDC Driver

Oracle JBDC driver (ex.: THIN ou OCI).

N/A

String

IBM MQ

Atualmente não temos suporte para autenticação por meio do TLS.

Parâmetro
Descrição
Tipo de Dado

Host Name

Nome do host da conexão string JMS.

N/A

String

Port

Número da porta do broker IBM MQ.

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

JMS Object Properties

Parâmetro
Descrição
Tipo de Dado

JMSXUserID

String arbitrário que identifica o usuário que está enviando a mensagem. Ele deve ser definido pelo provedor durante a operação de envio.

String

JMSXAppID

Identidade da aplicação de envio. Ela deve ser definida pelo provedor durante a operação de envio.

String

JMSXDeliveryCount

Número de tentativas de envio da mensagem.

int

JMSXGroupID

Identidade do grupo de mensagem (definida pelo cliente) da qual a mensagem em questão faz parte. Ela deve ser usada pelos clientes que enviarem mensagens em lotes.

String

JMSXGroupSeq

Sequência numérica da mensagem (definida pelo cliente) dentro de um grupo.

int

JMSXConsumerTXID

Identificador da transação dentro da qual a mensagem foi produzida.

String

JMSXProducerTXID

Identificador da transação dentro da qual a mensagem foi consumida.

String

JMSXRvcTimeStamp

Tempo levado para uma mensagem ser entregue ao seu consumidor final.

long

JMSXState

Pode ser 1 (em espera), 2 (pronto), 3 (expirado) ou 4 (retido). Isso não é relevante para o aplicativo do cliente, sendo de uso interno do provedor.

int

No exemplo a seguir, você pode ver como usar algumas propriedades:

{

"JMSXUserID": "123",

"JMSXState": 1,

"JMSXGroupID": "test"

}

Fluxo de Mensagens

Entrada

O componente aceita qualquer mensagem de entrada e pode fazer uso dela através de Double Braces.

Saída

Sucesso

{
"success": true,
"message": "MENSAGEM QUE FOI ENVIADA AO BROKER"
}

Erro

{
"success": false,
"message": "Something went wrong while trying to produce the message to JMS service. Error: Error while attempting to add new Connection to the pool",
"error": "javax.jms.JMSException: Error while attempting to add new Connection to the pool"
}

JMS em Ação

Tibco EMS

Mensagem:

{
"message": "test"
}
  • Destination: QUEUE

  • Name: NAME.OF.THE.QUEUE

  • JMS Provider: Tibco EMS

  • Connection string: tcp://<HOST>:<PORT>

  • Is Binary: desabilitado

  • Raw Value: desabilitado

  • Fail On Error: desabilitado

Resposta:

{
"success": true,
"message": {
"message": "test"
}
}

Oracle AQ

Mensagem:

{
"message": "test"
}
  • Destination: QUEUE

  • Name: NAME.OF.THE.QUEUE

  • JMS Provider: Oracle AQ

  • Hostname: <HOSTNAME> ou <IP>

  • Port: <PORT>

  • SID: <ORACLE SID>

  • JDBC Type: thin

  • Is Binary: desabilitado

  • Raw Value: desabilitado

  • Fail On Error: desabilitado

Resposta:

{
"success": true,
"message": {
"message": "test"
}
}

IBM MQ

Mensagem:

{
"message": "test"
}
  • Destination: QUEUE

  • Name: NAME.OF.THE.QUEUE

  • JMS Provider: Oracle AQ

  • Hostname: <HOSTNAME> ou <IP>

  • Port: <PORT>

  • SID: <ORACLE SID>

  • JDBC Type: thin

  • Is Binary: desabilitado

  • Raw Value: desabilitado

  • Fail On Error: desabilitado

Resposta:

{
"success": true,
"message": {
"message": "test"
}
}

Atualizado