The following sections contain information about JMS message structures and message types, as well as examples for each.
JMS messages consist of metadata (comprised of headers and properties) and message data (a body). In order to make message metadata accessible to policy processing, messages sent to the driver can be wrapped in an envelope, and messages received by the driver and sent to the Metadirectory engine are also wrapped in an envelope. All message envelope elements and special attributes must have a namespace prefix bound to
. For consistency, the namespace prefix is used throughout this document. The root message envelope element must be a child of the XDS input/output elements.<jms:message xmlns:jms="urn:idm:jms"> <jms:headers> <!-- standard JMS headers start with "JMS" --> <!-- client-assignable headers --> <jms:header jms:name="JMSDeliveryMode"/> <jms:header jms:name="JMSExpiration"/> <jms:header jms:name="JMSPriority"/ <jms:header jms:name="JMSReplyTo"/> <jms:header jms:name="JMSCorrelationID"/> <jms:header jms:name="JMSType"/> </jms:headers> <jms:properties> <!-- standard JMS properties start with "JMSX" --> <jms:property jms:name="JMSXUserID"/> <jms:property jms:name="JMSXAppID"/> <jms:property jms:name="JMSXProducerTXID"/> <jms:property jms:name="JMSXConsumerTXID"/> <jms:property jms:name="JMSXRcvTimestamp"/> <jms:property jms:name="JMSXDeliveryCount"/> <jms:property jms:name="JMSXState"/> <jms:property jms:name="JMSXGroupID"/> <jms:property jms:name="JMSXGroupSeq"/> <!-- provider-specific properties start with "JMS_" --> <!-- application-specific properties start with anything else --> </jms:properties> <jms:body/> </jms:message>
Message type refers to how a message is sent, not necessarily what its content is. For example, a text message can be sent as text or bytes. The driver supports both text and bytes messages.
<jms:message xmlns:jms="urn:idm:jms"> <jms:properties> <!-- send message as text --> <jms:property name="Novell_IDM_MessageType">text</jms:property> </jms:properties> <jms:body>content</jms:body> </jms:message>
<jms:message xmlns:jms="urn:idm:jms"> <jms:properties> <!-- send message as bytes --> <jms:property name="Novell_IDM_MessageType">bytes</jms:property> </jms:properties> <jms:body>content</jms:body> </jms:message>