This is returned in the Reason field of the MQCFH - PCF header of the response message. The reason code is a qualification to the CompCode.
If there is no special reason to report, MQRC_NONE is returned. Typically, a successful call returns MQCC_OK and MQRC_NONE.
If the CompCode is either MQCC_WARNING or MQCC_FAILED, the command server always reports a qualifying reason.
Reason codes are returned with MQCC_FAILED unless otherwise stated.
Descriptions of the MQRC_* error codes are given in the WebSphere MQ Application Programming Reference manual. The following is a list, in alphabetic order, of the MQRCCF_* reason codes:
The value specified for Action is not valid. There is only one valid value.
Corrective action: Specify MQACT_FORCE_REMOVE as the value of the Action parameter.
An attempt to allocate a conversation to a remote system failed. The error may be due to an entry in the channel definition that is not valid, or it might be that the listening program at the remote system is not running.
Corrective action: Ensure that the channel definition is correct, and start the listening program if necessary. If the error persists, consult your systems administrator.
One or more of the attribute values specified was not valid. The error response message contains the failing attribute selectors (with parameter identifier MQIACF_PARAMETER_ID).
Corrective action: Specify only valid attribute values.
The batch interval specified was not valid.
Corrective action: Specify a valid batch interval value.
The BatchInterval parameter is allowed only for sender and server channels.
Corrective action: Remove the parameter.
The batch size specified was not valid.
Corrective action: Specify a valid batch size value.
The bind to a remote system during session negotiation has failed.
Corrective action: Consult your systems administrator.
In a command message, one of the following occurred:
The error response message contains the correct value.
This reason can also occur if a ping cannot be performed because the coded character-set identifiers are not compatible. In this case the correct value is not returned.
Corrective action: Construct the command with the correct coded character-set identifier, and specify this in the message descriptor when sending the command. For ping, use a suitable coded character-set identifier.
The Scope attribute of the queue is to be MQSCO_CELL, but no name service supporting a cell directory has been configured.
Corrective action: Configure the queue manager with a suitable name service.
The MQCFH Command field value was not valid.
Corrective action: Specify a valid command identifier.
The MQCFH Control field value was not valid.
Corrective action: Specify a valid control option.
The MQCFH StrucLength field value was not valid.
Corrective action: Specify a valid structure length.
The MQCFH MsgSeqNumber field value was not valid.
Corrective action: Specify a valid message sequence number.
The MQCFH ParameterCount field value was not valid.
Corrective action: Specify a valid parameter count.
The MQCFH Type field value was not valid.
Corrective action: Specify a valid type.
The MQCFH Version field value was not valid.
Corrective action: Specify a valid structure version number.
The MQCFIL Count field value was not valid.
Corrective action: Specify a valid count of parameter values.
In the MQCFIL structure, a duplicate parameter was detected in the list selector.
Corrective action: Check for and remove duplicate parameters.
The MQCFIL StrucLength field value was not valid.
Corrective action: Specify a valid structure length.
The MQCFIL Parameter field value was not valid.
Corrective action: Specify a valid parameter identifier.
A MQCFIN duplicate parameter was detected.
Corrective action: Check for and remove duplicate parameters.
The MQCFIN StrucLength field value was not valid.
Corrective action: Specify a valid structure length.
The MQCFIN Parameter field value was not valid.
Corrective action: Specify a valid parameter identifier.
Maximum number of names in a namelist exceeded. Maximum number of names is 256.
Corrective action: Reduce number of names.
A name, within a namelist, with a nonblank string length of greater than 48 bytes was detected.
Corrective action: Check that all names have a nonblank length of less than 48 bytes.
Strings greater than 48 bytes are accepted if all bytes over 48 are blanks.
A MQCFSL duplicate parameter was detected.
Corrective action: Check for and remove duplicate parameters.
This reason can occur if the same parameter is repeated with an MQCFST structure followed by an MQCFSL structure.
The total length of the strings (not including trailing blanks) in a MQCFSL structure exceeds the maximum allowable for the parameter.
Corrective action: Check that the structure has been specified correctly, and if so reduce the number of strings.
The command was rejected because the parameter identified in the error response was in conflict with another parameter in the command.
Corrective action: Consult the description of the parameter identified to ascertain the nature of the conflict, and the correct command.
A MQCFST duplicate parameter was detected.
Corrective action: Check for and remove duplicate parameters.
This reason can occur if the same parameter is repeated with an MQCFSL structure followed by an MQCFST structure.
The MQCFST StrucLength field value was not valid. The value was not a multiple of four or was inconsistent with the MQCFST StringLength field value.
Corrective action: Specify a valid structure length.
The MQCFST Parameter field value was not valid.
Corrective action: Specify a valid parameter identifier.
The MQCFST StringLength field value was not valid. The value was negative or greater than the maximum permitted length of the parameter specified in the Parameter field.
Corrective action: Specify a valid string length for the parameter.
The ChannelAutoDef value was not valid.
Corrective action: Specify MQCHAD_ENABLED or MQCHAD_DISABLED.
The ChannelAutoDefEvent value was not valid.
Corrective action: Specify MQEVR_ENABLED or MQEVR_DISABLED.
The ChannelAutoDefEvent parameter is allowed only for receiver and server-connection channels.
Corrective action: Remove the parameter.
The ChannelAutoDefExit value contained characters that are not allowed for program names on the platform in question.
Corrective action: Specify a valid name.
The ChannelAutoDefExit parameter is allowed only for receiver and server-connection channels.
Corrective action: Remove the parameter.
The ChannelAutoDef parameter is allowed only for receiver and server-connection channels.
Corrective action: Remove the parameter.
An attempt was made to create a channel but the channel already existed and Replace was not specified as MQRP_YES.
Corrective action: Specify Replace as MQRP_YES or use a different name for the channel to be created.
An attempt was made to use a channel, but the channel was disabled.
Corrective action: Start the channel.
An attempt was made to perform an operation on a channel, but the channel is currently active.
Corrective action: Stop the channel or wait for it to terminate.
The requested operation cannot complete because the channel is in doubt.
Corrective action: Examine the status of the channel, and either restart a channel to resolve the in-doubt state, or resolve the channel.
The ChannelName parameter contained characters that are not allowed for channel names.
Corrective action: Specify a valid name.
An attempt was made to stop a channel, but the channel was already stopped.
Corrective action: No action is required.
The channel specified does not exist.
Corrective action: Specify the name of a channel which exists.
The ChannelTable specified was not valid, or was not appropriate for the channel type specified on an Inquire Channel or Inquire Channel Names command.
Corrective action: Specify a valid channel table value.
The ChannelType specified was not valid, or did not match the type of an existing channel being copied, changed or replaced.
Corrective action: Specify a valid channel type.
The ChannelInstanceType specified was not valid.
Corrective action: Specify a valid channel instance type.
For Inquire Channel Status, no channel status is available for the specified channel. This may indicate that the channel has not been used.
Corrective action: None, unless this is unexpected, in which case consult your systems administrator.
The command was rejected because it would have resulted in the ClusterName attribute and the ClusterNamelist attribute both being nonblank. At least one of these attributes must be blank.
Corrective action: If the command specified one of these attributes only, you must also specify the other one, but with a value of blanks.
If the command specified both attributes, ensure that one of them has a value of blanks.
The command was rejected because it would have resulted in a cluster queue also being a transmission queue. This is not permitted.
Corrective action: Ensure that the command specifies either:
The command has failed.
Corrective action: Refer to the previous error messages for this command.
An error was received when an attempt was made to commit a unit of work.
Corrective action: Consult your systems administrator.
The library needed for the requested communications protocol could not be loaded.
Corrective action: Install the library for the required communications protocol, or specify a communications protocol that has already been installed.
A configuration error was detected in the channel definition or communication subsystem, and allocation of a conversation was not possible. This might be caused by one of the following:
Corrective action: Identify the error and take appropriate action.
The ConnectionName parameter contains one or more blanks at the start of the name.
Corrective action: Specify a valid connection name.
An error occurred while receiving data from a remote system. The connection to the remote system has unexpectedly terminated.
Corrective action: Contact your systems administrator.
The attempt to establish a connection to a remote system was rejected. The remote system might not be configured to allow a connection from this system.
Corrective action: Correct the error or restart the listener program.
The value specified for DataConversion is not valid.
Corrective action: Specify a valid value.
The data to be sent exceeds the maximum that can be supported for the command.
Corrective action: Reduce the size of the data.
The disconnection interval specified was not valid.
Corrective action: Specify a valid disconnection interval.
The DiscInterval parameter is only allowed for sender or server channel types.
Corrective action: Remove the parameter.
The Scope attribute of the queue is to be MQSCO_CELL, but this is not allowed for a dynamic queue.
Corrective action: Predefine the queue if it is to have cell scope.
The Encoding field in the message descriptor of the command does not match that required for the platform at which the command is being processed.
Corrective action: Construct the command with the correct encoding, and specify this in the message descriptor when sending the command.
The connection name in the channel definition could not be resolved into a network address. Either the name server does not contain the entry, or the name server was not available.
Corrective action: Ensure that the connection name is correctly specified and that the name server is available.
The value specified for EscapeType is not valid.
Corrective action: Specify a valid value.
The filter expression supplied in the publish/subscribe command message contains invalid syntax, and cannot be used.
Corrective action: Correct the syntax of the filter expression in the publish/subscribe command message. The filter expression is the value of the Filter tag in the psc folder in the MQRFH2 structure. See the Websphere MQ Integrator V2 Programming Guide for details of valid syntax.
The force value specified was not valid.
Corrective action: Specify a valid force value.
The HeartbeatInterval value was not valid.
Corrective action: Specify a value in the range 0-999 999.
The HeartbeatInterval parameter is allowed only for receiver and requester channels.
Corrective action: Remove the parameter.
An attempt to allocate a conversation to a remote system was unsuccessful. The error might be transitory, and the allocate might succeed later.
This reason can occur if the listening program at the remote system is not running.
Corrective action: Ensure that the listening program is running, and retry the operation.
The value specified for InDoubt is not valid.
Corrective action: Specify a valid value.
The KeepAliveInterval is not valid.
Corrective action: Specify a value in the range 0 through 99,999.
An attempt was made to create an object based on the definition of an existing object, but the new and existing objects had different types.
Corrective action: Ensure that the new object has the same type as the one on which it is based.
The listener program could not be started. Either the communications subsystem has not been started or there are too many jobs waiting in the queue.
Corrective action: Ensure the communications subsystem is started or retry the operation later.
The long retry count value specified was not valid.
Corrective action: Specify a valid long retry count value.
The LongRetryCount parameter is only allowed for sender or server channel types.
Corrective action: Remove the parameter.
The long timer (long retry wait interval) value specified was not valid.
Corrective action: Specify a valid long timer value.
The LongRetryInterval parameter is only allowed for sender or server channel types.
Corrective action: Remove the parameter.
The maximum message length value specified was not valid.
Corrective action: Specify a valid maximum message length.
The MCAName value contained characters that are not allowed for program names on the platform in question.
Corrective action: Specify a valid name.
The MCAName parameter is only allowed for sender, server or requester channel types.
Corrective action: Remove the parameter.
The MCAType value specified was not valid.
Corrective action: Specify a valid value.
The MQMD Format field value was not MQFMT_ADMIN.
Corrective action: Specify the valid format.
The ConnectionName parameter is required for sender or requester channel types, but is not present.
Corrective action: Add the parameter.
The Mode value was not valid.
Corrective action: Specify a valid mode value.
Corrective action: Check whether the queue manager is active.
Corrective action: Check whether the queue manager is active, and the queues involved are correctly set up, and enabled for MQGET.
Corrective action: Check whether the queue manager is active.
Corrective action: Check whether the queue manager is active, and the queues involved are correctly set up.
Corrective action: Check whether the queue manager is active, and the queues involved are correctly set up, and not inhibited for puts.
Corrective action: Check whether the queue manager is active.
The MsgRetryCount value was not valid.
Corrective action: Specify a value in the range 0-999 999 999.
The MsgRetryCount parameter is allowed only for receiver and requester channels.
Corrective action: Remove the parameter.
The MsgRetryExit value contained characters that are not allowed for program names on the platform in question.
Corrective action: Specify a valid name.
The MsgRetryExit parameter is allowed only for receiver and requester channels.
Corrective action: Remove the parameter.
The MsgRetryInterval value was not valid.
Corrective action: Specify a value in the range 0-999 999 999.
The MsgRetryInterval parameter is allowed only for receiver and requester channels.
Corrective action: Remove the parameter.
The MsgExit value contained characters that are not allowed for program names on the platform in question.
Corrective action: Specify a valid name.
A message length error was detected. The message data length was inconsistent with the length implied by the parameters in the message, or a positional parameter was out of sequence.
Corrective action: Specify a valid message length, and check that positional parameters are in the correct sequence.
The message sequence number parameter value was not valid.
Corrective action: Specify a valid message sequence number.
The command server received a message that is larger than its maximum valid message size.
Corrective action: Check the message contents are correct.
The NetBIOS listener name is not defined.
Corrective action: Add a local name to the configuration file and retry the operation.
Corrective action: Specify a valid value.
The NetworkPriority parameter is allowed for sender and server channels only.
Corrective action: Remove the parameter.
The communications subsystem is not available.
Corrective action: Ensure that the communications subsystem has been started.
Insufficient storage is available.
Corrective action: Consult your systems administrator.
The queue specified in the channel definition is not a transmission queue.
Corrective action: Ensure that the queue is specified correctly in the channel definition, and that it is correctly defined to the queue manager.
The NonPersistentMsgSpeed value was not valid.
Corrective action: Specify MQNPMS_NORMAL or MQNPMS_FAST.
The NonPersistentMsgSpeed parameter is allowed only for sender, receiver, server, requester, cluster sender and cluster receiver channels.
Corrective action: Remove the parameter.
An attempt was made to create an object, but the object already existed and the Replace parameter was not specified as MQRP_YES.
Corrective action: Specify Replace as MQRP_YES, or use a different name for the object to be created.
An object name was specified using characters that were not valid.
Corrective action: Specify only valid characters for the name.
An attempt was made to delete or change an object that was in use.
Corrective action: Wait until the object is not in use, and then retry the operation. Alternatively specify Force as MQFC_YES for a change command.
An attempt was made to replace a queue object with one of a different type.
Corrective action: Ensure that the new object is the same type as the one it is replacing.
The MQCFH ParameterCount field value was more than the maximum for the command.
Corrective action: Specify a parameter count that is valid for the command.
The MQCFH ParameterCount field value was less than the minimum required for the command.
Corrective action: Specify a parameter count that is valid for the command.
The sequence of parameters is not valid for this command.
Corrective action: Specify the positional parameters in a valid sequence for the command.
The Ping Channel command failed with a data compare error. The data offset that failed is returned in the message (with parameter identifier MQIACF_ERROR_OFFSET).
Corrective action: Consult your systems administrator.
The Ping Channel DataCount value was not valid.
Corrective action: Specify a valid data count value.
A ping operation can only be issued for a sender or server channel. If the local channel is a receiver channel, you must issue the ping from a remote queue manager.
Corrective action: Reissue the ping request for a different channel of the correct type, or for a receiver channel from a different queue manager.
The Purge value was not valid.
Corrective action: Specify a valid purge value.
The PutAuthority value was not valid.
Corrective action: Specify a valid authority value.
The PutAuthority parameter is only allowed for receiver or requester channel types.
Corrective action: Remove the parameter.
An attempt was made to define a queue with cell scope, or to change the scope of an existing queue from queue-manager scope to cell scope, but a queue with that name already existed in the cell.
Corrective action: Do one of the following:
The coded character set value for the queue manager was not valid.
Corrective action: Specify a valid value.
The QType value was not valid.
Corrective action: Specify a valid queue type.
An attempt was made to perform an action on a queue of the wrong type.
Corrective action: Specify a queue of the correct type.
The ReceiveExit value contained characters that are not allowed for program names on the platform in question.
Corrective action: Specify a valid name.
The receive operation failed.
Corrective action: Correct the error and retry the operation.
An error occurred while receiving data from a remote system. This might be caused by a communications failure.
Corrective action: Consult your systems administrator.
The channel is ending because the remote queue manager is terminating.
Corrective action: Restart the remote queue manager.
The channel cannot be started because the remote queue manager is not available.
Corrective action: Start the remote queue manager.
The Replace value was not valid.
Corrective action: Specify a valid replace value.
The command was rejected because it would have resulted in the RepositoryName and RepositoryNamelist attributes both being nonblank. At least one of these attributes must be blank.
Corrective action: If the command specified only one of these attributes, specify the other as well, but with a value of blanks.
If the command specified both attributes, ensure that one of them has a value of blanks.
The SecurityExit value contained characters that are not allowed for program names on the platform in question.
Corrective action: Specify a valid name.
The SendExit value contained characters that are not allowed for program names on the platform in question.
Corrective action: Specify a valid name.
An error occurred while sending data to a remote system. This might be caused by a communications failure.
Corrective action: Consult your systems administrator.
The SeqNumberWrap value was not valid.
Corrective action: Specify a valid sequence wrap number.
The ShortRetryCount value was not valid.
Corrective action: Specify a valid short retry count value.
The ShortRetryCount parameter is only allowed for sender or server channel types.
Corrective action: Remove the parameter.
The ShortRetryInterval value was not valid.
Corrective action: Specify a valid short timer value.
The ShortRetryInterval parameter is only allowed for sender or server channel types.
Corrective action: Remove the parameter.
The structure Type value was not valid.
Corrective action: Specify a valid structure type.
An attempt was made to define a channel automatically, but this was inhibited by the channel automatic definition exit. The AuxErrorDataInt1 parameter contains the feedback code from the exit indicating why it inhibited the channel definition.
Corrective action: Examine the value of the AuxErrorDataInt1 parameter, and take any action that is appropriate.
A channel security exit terminated the channel.
Corrective action: Check that the channel is attempting to connect to the correct queue manager, and if so that the security exit is specified correctly, and is working correctly, at both ends.
The queue manager specified was not known.
Corrective action: Specify the name of the queue manager to which the command is sent, or blank.
There is no definition of the referenced channel at the remote system.
Corrective action: Ensure that the local channel is correctly defined. If it is, add an appropriate channel definition at the remote system.
The channel was terminated because the user exit specified does not exist.
Corrective action: Ensure that the user exit is correctly specified and the program is available.
The parameter is not allowed for the type of channel being created, copied, or changed. Refer to the description of the parameter in error to determine the types of channel for which the parameter is valid
Corrective action: Remove the parameter.
A publish/subscribe command message cannot be executed on behalf of the requesting user because the subscription that it would update is already owned by a different user. A subscription can be updated or deregistered only by the user that originally registered the subscription.
Corrective action: Ensure that applications that need to issue commands against existing subscriptions are running under the user identifier that originally registered the subscription. Alternatively, use different subscriptions for different users.
The TransportType value was not valid.
Corrective action: Specify a valid transmission protocol type.
The XmitQName parameter contains characters that are not allowed for queue names.
This reason code also occurs if the parameter is not present when a sender or server channel is being created, and no default value is available.
Corrective action: Specify a valid name, or add the parameter.
The XmitQName parameter is only allowed for sender or server channel types.
Corrective action: Remove the parameter.