Message Translation


JMS Header Fields

EMS supports the ten predefined JMS header fields; see Header Fields.

Two Special Cases

These two header fields are special cases:

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 9 presents the mapping of JMS header fields to Rendezvous data types (that is, the type of the corresponding field in the exported message).

Table 9 Rendezvous: Mapping JMS Header Fields to RV Datatypes (Sheet 1 of 2)
JMS Header Name
Rendezvous Type
JMSDeliveryMode
TIBRVMSG_U8
JMSPriority
TIBRVMSG_U8
JMSTimestamp
TIBRVMSG_U64
JMSExpiration
TIBRVMSG_U64
JMSType
TIBRVMSG_STRING
JMSMessageID
TIBRVMSG_STRING
JMSCorrelationID
TIBRVMSG_STRING
JMSRedelivered
TIBRVMSG_BOOL
JMSDestination
send subject in TIBCO Rendezvous
JMSReplyTo
reply subject in TIBCO Rendezvous

JMS Property Fields

Import

When importing a Rendezvous message to an EMS message, tibemsd sets these JMS properties:

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):

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.

tibemsd 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 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 types based on the presence of the fields in Table 10.

Table 10 Rendezvous: Mapping Message Types (Import) 
Rendezvous Field
EMS Body Type
JMSBytes
JMSBytesMessage
JMSObject
JMSObjectMessage
JMSStream
JMSStreamMessage
JMSText
JMSTextMessage
None of these fields are present.
JMSMapMessage

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.

Export

When exporting an EMS message, tibemsd translates it to a Rendezvous message with the following structure:

Data Types

Table 12 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 12).

Table 12 Rendezvous: Mapping Data Types (Sheet 1 of 3)
EMS
Map
Rendezvous
Boolean
 
TIBRVMSG_BOOL
Byte
 
TIBRVMSG_I8
Short
<—
TIBRVMSG_U8
Short
 
TIBRVMSG_I16
Integer
<—
TIBRVMSG_U16
Integer
 
TIBRVMSG_I32
Long
<—
TIBRVMSG_U32
Long
 
TIBRVMSG_I64
Long
<—
TIBRVMSG_U64
Float
 
TIBRVMSG_F32
Double
 
TIBRVMSG_F64
Short
<—
TIBRVMSG_IPPORT16
Integer
<—
TIBRVMSG_IPADDR32
MapMessage
 
TIBRVMSG_MSG
Long
<—
TIBRVMSG_DATETIME
byte[]
 
TIBRVMSG_OPAQUE
java.lang.String
 
TIBRVMSG_STRING
byte[]
<—
TIBRVMSG_XML
byte[]
<—
TIBRVMSG_I8ARRAY
short[]
<—
TIBRVMSG_U8ARRAY
short[]
 
TIBRVMSG_I16ARRAY
int[]
<—
TIBRVMSG_U16ARRAY
int[]
 
TIBRVMSG_I32ARRAY
long[]
<—
TIBRVMSG_U32ARRAY
long[]
 
TIBRVMSG_I64ARRAY
long[]
<—
TIBRVMSG_U64ARRAY
float[]
 
TIBRVMSG_F32ARRAY
double[]
 
TIBRVMSG_F64ARRAY


TIBCO Enterprise Message Service™ User’s Guide
Software Release 4.3, February 2006
Copyright © TIBCO Software Inc. All rights reserved
www.tibco.com