Message Translation: TIBCO eFTL and TIBCO EMS
TIBCO eFTL software and TIBCO Enterprise Message Service software differ in the form of messages and in their subscription paradigm. To account for these differences, the eFTL server translates messages as they pass through its EMS side. These differences can affect developers of eFTL applications.
Content Matchers, Topic Names, and the _dest Field
TIBCO Enterprise Message Service software delivers messages based on topic names: publishers send each message to a specific topic, and subscribers receive the messages sent to a topic.
In contrast, TIBCO eFTL software delivers messages based on the content of named fields: a subscriber specifies a content matcher, and receives messages with matching fields and values.
To resolve this difference, the eFTL server translates according to the following table.
Translation |
---|
When an EMS channel forwards an EMS message into the eFTL side, it sets the _dest field of the eFTL message to the topic name of the EMS message. |
When an eFTL client creates a subscription with a content matcher that matches against the
_dest field, the EMS channel creates an EMS subscription to the corresponding topic.
EMS subscriptions can use the asterisk (*) and greater than (>) characters as wildcard elements. If an eFTL subscriber includes these elements in a content matcher, they become part of the EMS subscription, and the EMS server interprets them correctly. |
When an EMS channel forwards an eFTL message into the EMS side, and the message contains a _dest field, the channel publishes the EMS message to the topic corresponding to value of the _dest field. |
When an EMS channel attempts to forward an eFTL message into the EMS side, but the message does not contain a _dest field, or its _dest value is not a valid topic name, the channel discards the message, and does not publish it into the EMS side. The eFTL publisher receives an error callback. |
Translation from the EMS Side into the eFTL Side
The eFTL server translates JMS message types according to the following body type table.
JMS Body Type | Translation |
---|---|
Message | Translates to an empty eFTL message: that is, its only field is _dest. |
TextMessage | The _text field contains the text string data. |
MapMessage | Fields and their values translate according to the following field type table. |
Any other body type. | The eFTL server discards messages with any other JMS body type. |
The eFTL server translates JMS fields according to the following field type table.
Translation from the eFTL Side into the EMS Side
All eFTL messages translate into EMS map messages. The eFTL server translates eFTL fields according to the following field type table.
EMS administrators do not configure translation in the EMS server.