JMS

Discover more about the JMS component and how to use it on the Digibee Integration Platform.

JMS makes operations in message barrings that support API JMS. Currently, the Digibee Integration Platform provides support for IBM MQ, Oracle AQ and Tibco EMS.

Parameters

Take a look at the configuration options for the component. Parameters supported by Double Braces expressions are marked with (DB).

ParameterDescriptionDefault valueData type

Account

Basic type account to be used for authentication in the JMS configured broker.

N/A

String

Message

Content of the message to be sent. In this field you can inform any text value.

N/A

String

Destination

Type of destination where the message will be sent to (Queue or Topic).

Topic

String

Name

Name of the queue or topic.

Test

String

JMS Provider

JMS provider to be used. Available options: IBM MQ, Oracle AQ, and Tibco EMS.

Tibco EMS

String

Binary Content

If the option is active, the received message is a base64 of the bytes you need to send; otherwise, the message will be sent as text.

False

Boolean

Charset

If the message you need to send is binary, then you must select the charset for the message.

N/A

String

Raw Value

If the option is active, the message is a raw value and needs to be sent as JSON (e.g., the word 'test' will be sent as "test").

False

Boolean

Fail On Error

If the option is active, the execution of the pipeline with an error will be interrupted; otherwise, the pipeline execution proceeds, but the result will show a false value for the “success” property.

False

Boolean

Advanced Configurations

If the option is active, you can access the following configurations:

False

Boolean

Correlation ID

A JMS client can use the JMS Correlation ID header to associate a message with another (for request/answer requests). This field can have an arbitrary string value. The use of this field is optional.

N/A

String

Expiration

Expiration time of the message inside the queue or topic (Time To Live). In milliseconds.

N/A

Integer

Priority

Defines the message priority. A value from 0 to 4 indicates normal priority (4 is standard); and the values from 5 to 9 indicate greater priority.

N/A

Integer

Type

This field can be used to define some value in the message dispatch, which can be used to filter it.

N/A

String

JMS Object Properties

Defines some JMSX properties of the JMS API. Learn more about this parameter in the section below.

N/A

N/A

There're some specific parameters for each broker:

Tibco EMS

ParameterDescriptionDefault ValueData Type

Connection String

JMS connection string in the format tcp://{host}:{port}.

tcp://localhost:61616

String

Oracle AQ

ParameterDescriptionDefault ValueData Type

Host Name

Host name of the JMS string connection.

N/A

String

Port

Port number to Oracle.

N/A

String

Sid

Oracle database sid (site identifier).

N/A

String

JDBC Driver

Oracle JDBC driver (e.g., THIN or OCI).

N/A

String

IBM MQ

We currently do not have support for authentication through TLS.

ParameterDescriptionData Type

Host Name

Host name for the JMS string connection.

N/A

String

Port

Port number for the IBM MQ broker.

N/A

String

Channel Name

Name of the channel to be used in the broker communication.

N/A

String

Queue Manager

Name of the IBM MQ queue manager.

N/A

String

JMS Object Properties

ParameterDescriptionData Type

JMSX User ID

Arbitrary string that identifies the user sending the message. It must be defined by the provider during the dispatch operation.

String

JMSX App ID

Identity of the dispatch application. It must be defined by the provider during the dispatch operation.

String

JMSX Delivery Count

Number of tries to send the message. This is defined by the provider.

Int

JMSX Group ID

Identity of the message group (defined by the client) that the message in discussion doesn't belong to. It must be used by the clients that send messages in batches.

String

JMSX Group Seq

Message numerical sequence (defined by the client) inside a group.

Int

JMSX Producer TX ID

Transaction identifier inside which the message was produced. This is defined by the provider.

String

JMSX Consumer TX ID

Transaction identifier inside which the message was consumed. This is defined by the provider.

String

JMSX Rcv Timestamp

Time taken for a message to be delivered to its end consumer. This is defined by the provider.

Long

JMSX State

It can be 1 (on hold), 2 (ready), 3 (expired), or 4 (retained). This isn't relevant for the client application, being internally used by the provider.

Int

In the following example, you can see how to use some properties:

{

"JMSXUserID": "123",

"JMSXState": 1,

"JMSXGroupID": "test"

}

Messages flow

Input

The component accepts any input message and can use it through Double Braces.

Output

Success

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

Error

{
"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 in Action

Tibco EMS

Message:

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

  • Name: NAME.OF.THE.QUEUE

  • JMS Provider: Tibco EMS

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

  • Is Binary: disabled

  • Raw Value: disabled

  • Fail On Error: disabled

Response:

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

Oracle AQ

Message:

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

  • Name: NAME.OF.THE.QUEUE

  • JMS Provider: Oracle AQ

  • Hostname: <HOSTNAME> or <IP>

  • Port: <PORT>

  • SID: <ORACLE SID>

  • JDBC Type: thin

  • Is Binary: disabled

  • Raw Value: disabled

  • Fail On Error: disabled

Response:

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

IBM MQ

Message:

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

  • Name: NAME.OF.THE.QUEUE

  • JMS Provider: IBM MQ

  • Hostname: <HOSTNAME> or <IP>

  • Port: <PORT>

  • Channel Name: <IBM MQ CHANNEL NAME>

  • Queue Manager: <IBM MQ QUEUE MANAGER>

  • Is Binary: disabled

  • Raw Value: disabled

  • Fail On Error: disabled

Response:

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

Last updated