Most message properties are mapped directly between service integration
and WebSphere MQ. However some message properties and reliability levels have
no exact equivalent. When you pass messages between service integration and
WebSphere MQ, these properties are either mapped to their nearest equivalent
or preserved in the RFH2 header for the message.
Mapping the additional service integration
message properties to MQRFH2 header fields
The following message
fields, specific to the service integration bus, hold extra information not
used in WebSphere MQ. To preserve these fields when a message is sent to WebSphere
MQ, their values are added to the MQRFH2 header of application messages in
a /sib folder.
MQRFH2 header field |
Equivalent SIBusMessage field or property |
Description |
JsApiUserId |
Application user identifier (JMSXUserId). |
The service integration application user identifier. |
JsDst |
JMS destination. |
The service integration JMS destination to which the
message was sent. |
JsFmt |
Message format. |
The service integration message format. |
JsSysMsgId |
System message identifier. |
The service integration system message identifier assigned
to the message. |
Note: When a message is sent to WebSphere MQ, a
/sib folder
is included in the MQRFH2 header of the message if both of the following are
true:
- The WebSphere MQ queue point attributes of the service integration destination
are configured to use RFH2 headers.
- The fields that correspond to the /sib folder content
are set in the service integration message.
Mapping the JMS Destination property between
service integration and WebSphere MQ
Service integration destinations
and WebSphere MQ destinations are fundamentally different and there is no
direct way to map between the two representations of the JMS destination property.
To address this, when a message leaves service integration and enters WebSphere
MQ, an additional RFH2 property is introduced into the
RFH2 header to store the service integration destination property.
The
service integration destination property is serialized, formatted as a hexadecimal
string, then stored using the JsDst property of the service
integration RFH2 folder.
For example: A service integration destination
SIQ1 is
localized on a WebSphere MQ queue
MQQ1, residing on queue
manager
QM1. The following actions occur when a service integration
application sends a message to
SIQ1:
- A serialized representation of PMQ1 is placed in the /sib folder
of the RFH2 header, using the JsDst property.
- The message is stored on MQQ1.
- The string "queue://QM1/MQQ1" is also placed in
the/jms folder of the RFH2 header using the Dst property.
This follows the convention used by the WebSphere MQ messaging provider
to encode JMS destinations. If the message is retrieved by a service integration
application, the JMS destination can be recovered from the
/sib folder
of the RFH2 header. If the message is retrieved by a WebSphere MQ application,
the JMS destination can be recovered from the contents of the
/jms folder
of the RFH2 header.
Note: If a WebSphere MQ server bus member is configured
so that it does not use RFH2 headers, the JMS destination is not preserved
when the message enters WebSphere MQ. In this situation, a service integration
application can still retrieve the JMS message, but any attempt to examine
the JMS destination property causes a JMS exception.
Mapping the message reliability between
service integration and WebSphere MQ
The order in which message
reliability mappings are applied is significant, and there are several locations
where message reliability can be set, overridden or mapped.
For messages
being sent to a service integration destination that is localized on a WebSphere
MQ server bus member, the following mappings apply in the order given:
- The message reliability can be set when the message is created.
- The message reliability can be mapped to a different level of reliability
when it is sent to a destination. The settings that determine this mapping
are a property of the service integration destination.
- If the message is sent to a destination that is assigned to a WebSphere
MQ queue, the reliability is subject to the reliability mapping performed
on all messages sent to WebSphere MQ. This process maps reliable persistent,
or higher levels of reliability, to WebSphere MQ persistent reliability. All
other levels of service integration reliability are mapped to WebSphere MQ
nonpersistent reliability.
For messages being received by service integration destinations
that are localized on a WebSphere MQ server bus member, the following mapping
applies:
- If a message is received from WebSphere MQ, then its WebSphere MQ persistence
is mapped to a service integration reliability using the mappings defined
as part of the WebSphere MQ server bus member from which the message is being
retrieved.