Messages can not be sent to the $sys.undelivered queue in versions of EMS later than 6.0.
book
Article ID: KB0090960
calendar_today
Updated On:
Products
Versions
TIBCO Enterprise Message Service
-
Not Applicable
-
Description
Resolution: Description: ======== Prior to EMS version 6.0, we did not enforce the $sys.undelivered queue. This is the reason messages could be sent to the $sys.undelivered queue. If a client application still tries to send messages to this queue with a version of EMS later than 6.0, it will throw the following exception:
“JMSExceptionWrapper: javax.jms.JMSSecurityException: Not allowed to send to system queue Caused by: javax.jms.JMSSecurityException: Not allowed to send to system queue”
This behavior is documented in EMS User's Guide.
================= Undelivered Message Queue
If a message expires or has exceeded the value specified by the maxRedelivery property on a queue, the server checks the message’s JMS_TIBCO_PRESERVE_UNDELIVERED property. If JMS_TIBCO_PRESERVE_UNDELIVERED is set to true, the server moves the message to the undelivered message queue, $sys.undelivered. This undelivered message queue is a system queue that is always present and cannot be deleted. If JMS_TIBCO_PRESERVE_UNDELIVERED is set to false, the message will be deleted by the server.
To make use of the undelivered message queue, 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 can only set the undelivered property on individual messages. There is no way to set the undelivered message queue as an option at the per-topic or per-queue level.
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.
Issue/Introduction
Messages can not be sent to the $sys.undelivered queue in versions of EMS later than 6.0.