EMS supports the ten predefined JMS header fields; see Header Fields.
These two header fields are special cases:
When importing a SmartSockets message to an EMS message, tibemsd
does not set any JMS header fields, except for the special cases noted above.
When exporting an EMS message to a SmartSockets message, tibemsd
groups all the JMS header fields (except for the special cases noted above) into a single submessage within the SmartSockets 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 absentit 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
.
When importing a SmartSockets message to an EMS message, tibemsd
sets these JMS properties:
JMS_TIBCO_IMPORTED
gets the value true
, indicating that the message did not originate from an EMS client.JMS_TIBCO_MSG_EXT
gets the value true
, indicating that the message might contain submessage fields or array fields.JMS_TIBCO_SS_SENDER
gets the value of the SmartSockets sender
header field (in SmartSockets syntax).
In addition, tibemsd
maps SmartSockets message properties to EMS properties; for details see SmartSockets Message Properties.
When exporting an EMS message to a SmartSockets message, tibemsd
groups all the JMS property fields into a single submessage within the SmartSockets 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 nullit 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
.
In release 4.1.0 (and later), tibemsd
maps SmartSockets message headers to EMS message properties on import. Table 15 summarizes the mapping. The first column indicates the EMS property, and the second column indicates the SmartSockets method that gets the corresponding header.
The transport parameter import_ss_headers
governs the import behavior. The third column of Table 15 lists the values of that parameter for which tibemsd
imports the message property in that row. See import_ss_headers
.
EMS client programs may modify the values of these properties within imported messages for re-export to SmartSockets. (However, exporting a native EMS message does not carry these properties to SmartSockets.)
Export of these properties depends on the value of the transport parameter export_properties
.
When exporting an EMS message to SmartSockets, tibemsd
maps these properties in reverse. In most cases, the mapping is symmetricexport maps them back to the same SmartSockets header. However, three exceptions (JMS_TIBCO_SS_SENDER
, JMS_TIBCO_SS_MESSAGE_ID
and JMS_TIBCO_SS_SEQ_NUM
) are asymmetricexport maps them to subfields of the field JMSProperties
within the SmartSockets
message. The fourth column of Table 15 indicates this asymmetry.
tibemsd
can export messages with any JMS message body type to TIBCO SmartSockets. Conversely, tibemsd
can import messages with any message type from TIBCO SmartSockets.
For information about JMS body types, see Message Bodies.
For information about the structure of messages, see JMS Message Structure.
When importing a SmartSockets message, tibemsd
translates it to one of two EMS message body types:
JMSStreamMessage
. The stream contains the values of the unnamed fields in the same order as they appear in the SmartSockets message.JMSMapMessage
. The map message contains the named fields; the order of the fields is indeterminate.
When exporting an EMS message, tibemsd
translates it to one of six SmartSockets message types (see Table 16) with the following structure:
JMSHeaders
is the first field (omitted when the transport parameter export_headers
is false
). It contains a submessage; see JMS Header Fields.JMSProperties
is the next field (omitted when the transport parameter export_properties
is false
). It contains a submessage; see JMS Property Fields.
Table 17 presents the mapping between EMS datatypes and SmartSockets datatypes. The mapping is bidirectional, except for a few SmartSockets types that have no corresponding EMS type (for these types the mapping is marked as unidirectional in the middle column of Table 17).
EMS
|
Map
|
SmartSockets
|
---|---|---|
Boolean
|
|
T_MSG_FT_BOOL
|
Byte
|
|
T_MSG_FT_CHAR
|
Character
|
|
T_MSG_FT_INT2
|
Short
|
|
T_MSG_FT_INT2
|
Integer
|
|
T_MSG_FT_INT4
|
Long
|
|
T_MSG_FT_INT8
|
Float
|
|
T_MSG_FT_REAL4
|
Double
|
|
T_MSG_FT_REAL8
|
Double
|
<
|
T_MSG_FT_TIMESTAMP
|
String
|
|
T_MSG_FT_STR
|
String
|
<
|
T_MSG_FT_XML
|
String
|
<
|
T_MSG_FT_UTF8
|
Byte Array
|
|
T_MSG_FT_BINARY
|
Short Array
|
<
|
T_MSG_FT_BOOL_ARRAY
|
Short Array
|
|
T_MSG_FT_INT2_ARRAY
|
Integer Array
|
|
T_MSG_FT_INT4_ARRAY
|
Long Array
|
|
T_MSG_FT_INT8_ARRAY
|
Float Array
|
|
T_MSG_FT_REAL4_ARRAY
|
Double Array
|
|
T_MSG_FT_REAL8_ARRAY
|
Double Array
|
<
|
T_MSG_FT_TIMESTAMP_ARRAY
|
Stream Message
|
|
T_MSG_FT_MSG
(See Import.)
|
Map Message
|
|
tibemsd
automatically translates destination names when importing or exporting a message; see Slash & Dot Separators.
When importing, it translates names in the SmartSockets subject
and reply_to
fields. When exporting, it translates names in the EMS JMSDestination
and JMSReplyTo
fields.
TIBCO Enterprise Message Service™ User’s Guide Software Release 4.3, February 2006 Copyright © TIBCO Software Inc. All rights reserved www.tibco.com |