![]() |
Copyright © TIBCO Software Inc. All Rights Reserved |
The header contains 11 predefined fields that contain values used to route and deliver messages. Table 5 describes the message header fields.
Table 5 JMS Message Headers send or publish method send or publish method EMS extends the delivery mode to include a RELIABLE_DELIVERY mode, as described in RELIABLE_DELIVERY on page 28. send or publish method Length of time that message will live before expiration. If set to 0, message does not expire. The time-to-live is specified in milliseconds.If the server expiration property is set for a destination, it will override the JMSExpiration value set by the message producer. send or publish method send or publish method See Message Priority for more information. send or publish method send or publish method TIBCO-specific property names begin with JMS_TIBCO. Client programs may use the TIBCO-specific properties to access EMS features, but not for communicating application-specific information among client programs.The EMS properties are summarized in Table 6 and described in more detail in subsequent sections in this chapter.
Table 6 Summary of message properties Extends the functionality of the MapMessage and StreamMessage body types to include submessages or arrays. When the EMS server imports a message from TIBCO SmartSockets, it sets this property to the SmartSockets sender header field (in SmartSockets syntax). If a message could not be delivered for one of the reasons below, the server checks the message’s JMS_TIBCO_PRESERVE_UNDELIVERED property. If that property is set to true, the server moves the message to the undelivered message queue, $sys.undelivered. Otherwise, the message is deleted by the server.The server will examine a message’s JMS_TIBCO_PRESERVE_UNDELIVERED property if any of the following conditions are met:
• the message has exceeded the value specified by the maxRedelivery property on a queue
• the message had a delivery delay that has expired and was sent to a destination that has reached its maxmsgs limit and also has overflowPolicy=rejectIncoming$sys.undelivered is a system queue that is always present and cannot be deleted. To make use of it, the application that sends or publishes the message must set the boolean JMS_TIBCO_PRESERVE_UNDELIVERED property to true before sending or publishing the message.You should create a queue receiver to receive and handle messages as they arrive on the undelivered message queue. If you wish to remove messages from the undelivered message queue without receiving them, you can purge the $sys.undelivered queue with the administration tool, using the purge queue command described under Command Listing. You can also remove messages using the administrative API included with TIBCO Enterprise Message Service.Note that $sys.undelivered ignores the global destination property setting. Messages in the undelivered message queue are not routed to other servers.You can filter messages in the undelivered message queue by destination using a selector. Note that this is an exception to the JMS Specification that is made only for messages in the undelivered message queue. In the undelivered message queue, the JMSDestination header field can be used in a selector the same way that a supported header field or any other message property with a string value is used.The expected value of the JMSDestination field depends on the original message destination type and name:Within a message, EMS can supply the user name given by the message producer when a connection is created. The sender_name and sender_name_enforced server properties on the destination determine whether the message producer’s user name is included in the sent message.When a user name is included in a message, a message consumer can retrieve that user name by getting the string message property named JMS_TIBCO_SENDER.When the sender_name property is enabled and the sender_name_enforced property is not enabled on a destination, message producers can specify that the user name is to be left out of the message. Message producers can specify the JMS_TIBCO_DISABLE_SENDER boolean property for a particular message, and the message producer’s user name will not be included in the message. However, if the sender_name_enforced property is enabled, the JMS_TIBCO_DISABLE_SENDER property is ignored and the user name is always included in the message.
Table 7 JMS Message Types A java.lang.String. A set of name/value pairs. The names are java.lang.String objects, and the values are Java primitive value types or their wrappers. The entries can be accessed sequentially by enumeration or directly by name. The order of entries is undefined.
![]() |
Copyright © TIBCO Software Inc. All Rights Reserved |