IMPORTANTE: Esta documentação foi descontinuada. Leia a documentação JMS atualizada no nosso novo portal de documentação.
O JMS realiza operações em brokers de mensageria que suportem API JMS. Atualmente suportamos, IBM MQ, Oracle AQ e Tibco EMS.
Dê uma olhada nos parâmetros de configuração do componente, dependendo do tipo de barramento que se deseja utilizar:
Account: conta do tipo BASIC que será utilizada para autenticação no broker JMS configurado.
Message: conteúdo da mensagem a ser enviada. Nesse campo pode ser informado qualquer valor de texto. Esse parâmetro suporta Double Braces.
Destination: tipo de destino para onde a mensagem será enviada (QUEUE ou TOPIC).
Name: nome da fila ou tópico.
JMS Provider: provedor JMS que será utilizado. Opções disponíveis: IBM MQ, Oracle AQ e Tibco EMS.
Is Binary: “true” se a mensagem recebida é um base64 dos bytes que você precisa enviar; do contrário, a mensagem será enviada como texto.
Charset: se a mensagem que você precisa enviar é binária, então você deve selecionar o charset para a mensagem.
Raw Value: “true” se a mensagem é um raw value e precisa ser enviada como JSON (ex.: a palavra 'teste' será enviada como "teste").
Fail On Error: se a opção estiver habilitada, 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".
Advanced Configurations:
- 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.
- Expiration: tempo de expiração da mensagem dentro da fila ou tópico (Time To Live). Em milissegundos.
- 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.
- Type: esse campo pode ser utilizado para definir algum valor no envio da mensagem, que poderá ser utilizado para filtrá-la.
- JMS Object Properties: define algumas propriedades JMSX da API JMS que poderão serem configuradas:
-> JMSXUserID (String): 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.
-> JMSXAppID (String): identidade da aplicação de envio. Ela deve ser definida pelo provedor durante a operação de envio.
-> JMSXDeliveryCount (int): número de tentativas de envio da mensagem.
-> JMSXGroupID (String): 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.
-> JMSXGroupSeq (int): sequência numérica da mensagem (definida pelo cliente) dentro de um grupo.
-> JMSXConsumerTXID (String): identificador da transação dentro da qual a mensagem foi produzida.
-> JMSXProducerTXID (String): identificador da transação dentro da qual a mensagem foi consumida.
-> JMSXRvcTimeStamp (long): tempo levado para uma mensagem ser entregue ao seu consumidor final.
-> JMSXState (int): 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.
Exemplo de uso no campo de algumas das propriedades:
{
"JMSXUserID": "123",
"JMSXState": 1,
"JMSXGroupID": "test"
}
Existem algumas propriedades específicas para cada broker:
Tibco EMS
Url: conexão string JMS no formato tcp://{host}:{port}
Oracle AQ
Host Name: nome do host da conexão string JMS
Port: número da porta para Oracle
Sid: Oracle database sid (identificador de site)
JBDC Driver: Oracle JBDC driver (ex.: THIN ou OCI)
IBM MQ
Ainda não há suporte ainda para autenticação por meio do TLS.
Host Name: nome do host da conexão string JMS
Port: número da porta do broker IBM MQ
Channel Name: nome do canal a ser utilizado na comunicação do broker
Queue Manager: nome do gerenciador de filas do IBM MQ
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 EM
Message:
{
"message": "test"
}
Destination: QUEUE
Name: NAME.OF.THE.QUEUE
JMS Provider: Tibco
Connection string: tcp://<HOST>:<PORT>
Is Binary: desabilitado
Raw Value: desabilitado
Fail On Error: desabilitado
Resposta:
{
"success": true,
"message": {
"message": "test"
}
}
Oracle AQ
Message:
{
"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
Message:
{
"message": "test"
}
Destination: QUEUE
Name: NAME.OF.THE.QUEUE
JMS Provider: IBM MQ
Hostname: <HOSTNAME> ou <IP>
Port: <PORT>
Channel Name: <IBM MQ CHANNEL NAME>
Queue Manager: <IBM MQ QUEUE MANAGER>
Is Binary: desabilitado
Raw Value: desabilitado
Fail On Error: desabilitado
Resposta:
{
"success": true,
"message": {
"message": "test"
}
}