2048 (0800) (RC2048): MQRC_PERSISTENT_NOT_ALLOWED
Explanation
On an MQPUT or MQPUT1 call,
the value specified for the Persistence
field
in MQMD (or obtained from the DefPersistence
queue
attribute) specifies MQPER_PERSISTENT, but the queue on which the message
is being placed does not support persistent messages. Persistent messages
cannot be placed on temporary dynamic queues.
This reason code can
also occur in the Feedback
field
in the message descriptor of a report message; in this case it indicates that
the error was encountered by a message channel agent when it attempted to
put the message on a remote queue.
Completion Code
MQCC_FAILED
Programmer response
Specify MQPER_NOT_PERSISTENT if the message is to be placed on a temporary dynamic queue. If persistence is required, use a permanent dynamic queue or predefined queue in place of a temporary dynamic queue.
Be aware that server applications are recommended
to send reply messages (message type MQMT_REPLY) with the same persistence
as the original request message (message type MQMT_REQUEST). If the request
message is persistent, the reply queue specified in the ReplyToQ
field
in the message descriptor MQMD cannot be a temporary dynamic queue. Use a
permanent dynamic queue or predefined queue as the reply queue in this situation.
On z/OS®, you cannot put persistent messages to a shared queue if the CFSTRUCT that the queue uses is defined with RECOVER(NO). Either put only non-persistent messages to this queue or change the queue definition to RECOVER(YES). If you put a persistent message to a queue that uses a CFSTRUCT with RECOVER(NO) the put will fail with MQRC_PERSISTENT_NOT_ALLOWED.