JMS perform operations in JMS APIs JMS.

Take a look at the configuration parameters of the component:

  • Account: account to be used by the component. You must create a BASYC-type account.
  • Message: defines to message do be sent to the QUEUE or TOPIC.
  • Destination: TOPIC or QUEUE.
  • Name: name of the TOPIC/QUEUE which you need to send some message to.
  • JMS Provider: JMS provider to be used (ActiveMQ, Oracle Advanced Queue or Tibco EMS).
  • Connection String: JMS string connection in tcp://{host}:{port} format.
  • Raw Value: if the option is activated, the message will be a raw value and must be sent as JSON. Example: the word 'test' will be sent as "test".
  • Binary Content: if the option is activated, the received message will be a base64 of the bytes you need to send; otherwise, the message will be sent as a text.
  • Charset: if the message to be sent is binary, then this option must be activated.
  • Advanced Configurations: advanced settings.
  • Correlation ID: string representando o ID de correlação da mensagem (campo opcional).
  • Expiration: time for the message to expire (in milliseconds).
  • Redelivered: if the option is activated, the dispatch of non-recognised will be made again.
  • Priority: number that indicated the message priority (optional field).
  • Type: arbitrary string for each created message. This property is frequently used to ease the search filters of JMS messages.
  • JMS Object Properties: string value, from 0 to 9, which reflects the message priority. A value from 0 to 4 indicates normal priority (4 is standard); the values from 5 to 9 indicate high priority.
  • Fail On Error: if the option is activated, the execution of the pipeline with error will be suspended; otherwise, the execution of the pipeline continues, but the result will show a false value for the success property.

Messages flow

Input

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

Ouput

The component doesn't change any information from the input message. Therefore, it's returned to the following component or used as final response if this component is the last step of the pipeline.


Message Properties

The message properties work as extra fields of the header. JMS supports 3 properties categories:

  • JMS-defined properties
  • Provider-specific properties
  • User-defined properties

JMS supports all the 3 categories, even without requiring applications to support properties (except to JMSXGroupID and JMSXGroupSeq). See below:

JMS-DEFINED

JMS defines and the JMS component exposes a number of JMS-specific property fields that can be optionally dissipated by messages of clients and/or providers. These JMS-defined properties, whose names always start with “JMSX”, include:

  • JMSXUserID (String): arbitrary string that identifies the user sending the message. It must be defined by the provider during the disptach operation.
  • JMSXAppID (String): identity of the dispatch application. It must be defined by the provider during the disptach operation.
  • JMSXDeliveryCount (int): number of times the message tried to be sent. This is defined by the provider.
  • JMSXGroupID (String): identity of the message group (defined by the client) from which the message is part of. It must be used by the clients who send messages in batches.
  • JMSXGroupSeq (int): numerical sequence of the message (defined by the client) inside a group.
  • JMSXProducerTXID (String): transaction identifier inside which the message was produced. This is defined by the provider.
  • JMSXConsumerTXID (String): transaction identifier inside which the message was consumed. This is defined by the provider.
  • JMSXRcvTimestamp (long): time taken for a message to be delivered to its final consumer. This is defined by the provider.
  • JMSXState (int): it can be 1 (on hold), 2 (done), 3 (expired) or 4 (retained). This isn't relevant for the client application, since it's for the provider internal use. For the message properties, the use is shown below:
{

"JMSXUserID": "123",

"JMSXState": 1,

"JMSXGroupID": "test"

}


To convert Double Braces, we use JSON Path specifications. Click here to know more.

JMS in Action

You can:

  • use a fixed JSON
message = "{\data\":[{\object\": 1}, {\object\": 2}]}"  

  • obtain some JSON from the message, which will search the 'data' object of the message
message = "{{message.$.data}}        

  • combine both examples
message = "{\"data\":[{\object\":{{message.$.id1}}}, {\"object\":{{message.$.id2}}}]}" 
Did this answer your question?