Chapter 15 Working With TIBCO Rendezvous : Message Translation

Message Translation
JMS Header Fields
EMS supports the ten predefined JMS header fields; see JMS Message Header Fields.
Special Cases
These header fields are special cases:
JMS header JMSDestination corresponds to Rendezvous subject.
JMS header JMSReplyTo corresponds to Rendezvous reply subject.
JMS header JMSExpiration corresponds to the time limit of the Rendezvous certified message.
Import
When importing a Rendezvous message to an EMS message, tibemsd does not set any JMS header fields, except for the special cases noted above.
Export
When exporting an EMS message to a Rendezvous message, tibemsd groups all the JMS header fields (except for the special cases noted above) into a single submessage within the Rendezvous message. The field JMSHeaders contains that submessage. Fields of the submessage map the names of JMS header fields to their values.
tibemsd ignores any JMS header fields that are null or absent—it omits them from the exported message.
You can instruct tibemsd to suppress the entire header submessage in all exported messages by setting the transport property export_headers = false.
Table 53 presents the mapping of JMS header fields to Rendezvous data types (that is, the type of the corresponding field in the exported message).
send subject in TIBCO Rendezvous
reply subject in TIBCO Rendezvous
JMS Property Fields
Import
When importing a Rendezvous message to an EMS message, tibemsd sets these JMS properties:
JMS_TIBCO_IMPORTED gets the value true, to indicate that the message did not originate from an EMS client.
JMS_TIBCO_MSG_EXT gets the value true, to indicate that the message might contain submessage fields or array fields.
Import RVCM
In addition to the two fields described above, when tibemsd imports a certified message on a tibrvcm transport, it can also set these properties (if the corresponding information is set in the Rendezvous message):
 
A string value indicating the correspondent name of the TIBCO Rendezvous CM transport that sent the message (that is, the sender name).
A long value indicating the CM sequence number of an RVCM message imported from TIBCO Rendezvous.
Export
When exporting an EMS message to a Rendezvous message, tibemsd groups all the JMS property fields into a single submessage within the Rendezvous message. The field JMSProperties contains that submessage. Fields of the submessage map the names of JMS property fields to their values.
The tibemsd daemon ignores any JMS property fields that are not set, or are set to null—it omits them from the exported message.
You can instruct tibemsd to suppress the entire properties submessage in the exported message by setting the transport property export_properties = false.
Message Body
tibemsd can export messages with any JMS message body type to TIBCO Rendezvous. Conversely, tibemsd can import messages with any message type from TIBCO Rendezvous.
For information about JMS body types, see JMS Message Bodies.
For information about the structure of messages, see JMS Message Structure.
Import
When importing a Rendezvous message, tibemsd translates it to an EMS message body type based on the presence of the field in Table 55.
The field names DATA and _data_ are reserved. We strongly discourage you from using these field names in either EMS and Rendezvous applications, and especially when these two message transport mechanisms interoperate.
Only standard Rendezvous fields identified by name can be imported into EMS. Custom fields and fields identified in the Rendezvous application by field identifiers cannot be imported.
Export
When exporting an EMS message, tibemsd translates it to a Rendezvous message with the following structure:
The field JMSHeaders contains a submessage; see JMS Header Fields. When the transport parameter export_headers is false, this field is omitted.
The field JMSProperties contains a submessage; see JMS Property Fields. When the transport parameter export_properties is false, this field is omitted.
The field JMSBytes receives this data. It has type TIBRVMSG_OPAQUE.
The field JMSObject receives this data. It has type TIBRVMSG_OPAQUE.
The message data translates to a byte array that encodes the objects in the original EMS message.
The field JMSStream receives this data. It has type TIBRVMSG_OPAQUE.
The message data translates to a UTF-8 string corresponding to the text of the original EMS message.
The field JMSText receives this data. It has type TIBRVMSG_STRING.
The message data fields map directly to top-level fields in the Rendezvous message. The fields retain the same names as in the original EMS message.
Data Types
Table 57 presents the mapping between EMS datatypes and Rendezvous datatypes. The mapping is bidirectional, except for the Rendezvous types that have no corresponding EMS type (for these types the mapping is marked as unidirectional in the middle column of Table 57).
<
<
<
<
<
<
<
<
<
<
<
<
<