ALTER queues

Use the MQSC ALTER command to alter the parameters of a queue. A queue might be a local queue (ALTER QLOCAL), alias queue (ALTER QALIAS), model queue (ALTER QMODEL), a remote queue, a queue-manager alias, or a reply-to queue alias (ALTER QREMOTE).

This section contains the following commands:

These commands are supported on the following platforms:

UNIX and Linux® Windows
X X

Parameters not specified in the ALTER queue commands result in the existing values for those parameters being left unchanged.

Parameter descriptions for ALTER QUEUE

The parameters that are relevant for each type of queue are tabulated in Table 1. Each parameter is described after the table.
Table 1. DEFINE and ALTER QUEUE parameters.

Cross-tabulation of queue parameters and queue types. If the parameter applies to the queue type, the cell contains a check mark.

 Parameter Local queue Model queue Alias queue Remote queue
ACCTQ X X    
BOQNAME X X    
BOTHRESH X X    
CFSTRUCT X X    
CLCHNAME X X    
CLUSNL X   X X
CLUSTER X   X X
CLWLPRTY X   X X
CLWLRANK X   X X
CLWLUSEQ X      
CMDSCOPE X X X X
CUSTOM X X X X
DEFBIND X   X X
DEFPRESP X X X X
DEFPRTY X X X X
DEFPSIST X X X X
DEFREADA X X X  
DEFSOPT X X    
DEFTYPE X X    
DESCR X X X X
DISTL X X    
FORCE X   X X
GET X X X  
HARDENBO or NOHARDENBO X X    
INDXTYPE X X    
INITQ X X    
LIKE X X X X
MAXDEPTH X X    
MAXMSGL X X    
MONQ X X    
MSGDLVSQ X X    
NPMCLASS X X    
PROCESS X X    
PROPCTL X X X  
PUT X X X X
queue-name X X X X
QDEPTHHI X X    
QDEPTHLO X X    
QDPHIEV X X    
QDPLOEV X X    
QDPMAXEV X X    
QSGDISP X X X X
QSVCIEV X X    
QSVCINT X X    
RETINTVL X X    
RNAME       X
RQMNAME       X
SCOPE X   X X
SHARE or NOSHARE X X    
STATQ X X    
STGCLASS X X    
TARGET     X  
TARGQ     X  
TARGTYPE     X  
TRIGDATA X X    
TRIGDPTH X X    
TRIGGER or NOTRIGGER X X    
TRIGMPRI X X    
TRIGTYPE X X    
USAGE X X    
XMITQ       X
queue-name
Local name of the queue, except the remote queue where it is the local definition of the remote queue.
See Rules for naming IBM® WebSphere® MQ objects.
ACCTQ
Specifies whether accounting data collection is to be enabled for the queue. On z/OS®, the data collected is class 3 accounting data (thread-level and queue-level accounting). In order for accounting data to be collected for this queue, accounting data for this connection must also be enabled. Turn on accounting data collection by setting either the ACCTQ queue manager attribute, or the options field in the MQCNO structure on the MQCONNX call.
QMGR
The collection of accounting data is based on the setting of the ACCTQ parameter on the queue manager definition.
ON
Accounting data collection is enabled for the queue unless the ACCTQ queue manager parameter has a value of NONE. On z/OS systems, you must switch on class 3 accounting using the START TRACE command.
OFF
Accounting data collection is disabled for the queue.
BOQNAME(queue-name)
The excessive backout requeue name.

This parameter is supported only on local and model queues.

Use this parameter to set or change the back out queue name attribute of a local or model queue. Apart from allowing its value to be queried, the queue manager does nothing based on the value of this attribute. IBM WebSphere MQ classes for JMS transfers a message that is backed out the maximum number of times to this queue. The maximum is specified by the BOTHRESH attribute.

BOTHRESH(integer)
The backout threshold.

This parameter is supported only on local and model queues.

Use this parameter to set or change the value of the back out threshold attribute of a local or model queue. Apart from allowing its value to be queried, the queue manager does nothing based on the value of this attribute. IBM WebSphere MQ classes for JMS use the attribute to determine how many times to allows a message to be backed out. When the value is exceeded, the message is transferred to the queue named by the BOQNAME attribute.

Specify a value in the range 0 - 999,999,999.

CFSTRUCT(structure-name)
Specifies the name of the coupling facility structure where you want messages stored when you use shared queues.

This parameter is supported only on z/OS for local and model queues.

The name:
  • Cannot have more than 12 characters
  • Must start with an uppercase letter (A - Z)
  • Can include only the characters A - Z and 0 - 9

The name of the queue-sharing group to which the queue manager is connected is prefixed to the name you supply. The name of the queue-sharing group is always four characters, padded with @ symbols if necessary. For example, if you use a queue-sharing group named NY03 and you supply the name PRODUCT7, the resultant coupling facility structure name is NY03PRODUCT7. The administrative structure for the queue-sharing group (in this case NY03CSQ_ADMIN) cannot be used for storing messages.

For ALTER QLOCAL, ALTER QMODEL, DEFINE QLOCAL with REPLACE, and DEFINE QMODEL with REPLACE the following rules apply:
  • On a local queue with QSGDISP(SHARED), CFSTRUCT cannot change.

    If you change either the CFSTRUCT or QSGDISP value you must delete and redefine the queue. To preserve any of the messages on the queue you must offload the messages before you delete the queue. Reload the messages after you redefine the queue, or move the messages to another queue.

  • On a model queue with DEFTYPE(SHAREDYN), CFSTRUCT cannot be blank.
  • On a local queue with a QSGDISP other than SHARED, or a model queue with a DEFTYPE other than SHAREDYN, the value of CFSTRUCT does not matter.
For DEFINE QLOCAL with NOREPLACE and DEFINE QMODEL with NOREPLACE, the coupling facility structure:
  • On a local queue with QSGDISP(SHARED) or a model queue with a DEFTYPE(SHAREDYN), CFSTRUCT cannot be blank.
  • On a local queue with a QSGDISP other than SHARED, or a model queue with a DEFTYPE other than SHAREDYN, the value of CFSTRUCT does not matter.
Note: Before you can use the queue, the structure must be defined in the coupling facility Resource Management (CFRM) policy data set.
CLCHNAME(channel name)

This parameter is supported only on transmission queues.

CLCHNAME is the generic name of the cluster-sender channels that use this queue as a transmission queue. The attribute specifies which cluster-sender channels send messages to a cluster-receiver channel from this cluster transmission queue. CLCHNAME is not supported on z/OS.

You can also set the transmission queue attribute CLCHNAME attribute to a cluster-sender channel manually. Messages that are destined for the queue manager connected by the cluster-sender channel are stored in the transmission queue that identifies the cluster-sender channel. They are not stored in the default cluster transmission queue. If you set the CLCHNAME attribute to blanks, the channel switches to the default cluster transmission queue when the channel restarts. The default queue is either SYSTEM.CLUSTER.TRANSMIT.ChannelName or SYSTEM.CLUSTER.TRANSMIT.QUEUE, depending on the value of the queue manager DEFCLXQ attribute.

By specifying asterisks, "*", in CLCHNAME, you can associate a transmission queue with a set of cluster-sender channels. The asterisks can be at the beginning, end, or any number of places in the middle of the channel name string. CLCHNAME is limited to a length of 48 characters, MQ_OBJECT_NAME_LENGTH. A channel name is limited to 20 characters: MQ_CHANNEL_NAME_LENGTH.

The default queue manager configuration is for all cluster-sender channels to send messages from a single transmission queue, SYSTEM.CLUSTER.TRANSMIT.QUEUE. The default configuration can be modified by changing the queue manager attribute, DEFCLXQ. The default value of the attribute is SCTQ. You can change the value to CHANNEL. If you set the DEFCLXQ attribute to CHANNEL, each cluster-sender channel defaults to using a specific cluster transmission queue, SYSTEM.CLUSTER.TRANSMIT.ChannelName.

CLUSNL(namelist name)
The name of the namelist that specifies a list of clusters to which the queue belongs.

This parameter is supported only on alias, local, and remote queues.

Changes to this parameter do not affect instances of the queue that are already open.

Only one of the resultant values of CLUSNL or CLUSTER can be nonblank; you cannot specify a value for both.

On local queues, this parameter cannot be set for transmission, SYSTEM.CHANNEL.xx, SYSTEM.CLUSTER.xx, or SYSTEM.COMMAND.xx queues, and on z/OS only, for SYSTEM.QSG.xx queues.

This parameter is valid only on AIX®, HP-UX, Linux, Solaris, Windows, and z/OS.

CLUSTER(cluster name)
The name of the cluster to which the queue belongs.

This parameter is supported only on alias, local, and remote queues.

The maximum length is 48 characters conforming to the rules for naming IBM WebSphere MQ objects. Changes to this parameter do not affect instances of the queue that are already open.

Only one of the resultant values of CLUSNL or CLUSTER can be nonblank; you cannot specify a value for both.

On local queues, this parameter cannot be set for transmission, SYSTEM.CHANNEL.xx, SYSTEM.CLUSTER.xx, or SYSTEM.COMMAND.xx queues, and on z/OS only, for SYSTEM.QSG.xx queues.

This parameter is valid only on AIX, HP-UX, Linux, Solaris, Windows, and z/OS.

CLWLPRTY(integer)
Specifies the priority of the queue for the purposes of cluster workload distribution. This parameter is valid only for local, remote, and alias queues. The value must be in the range zero through 9 where zero is the lowest priority and 9 is the highest. For more information about this attribute, see CLWLPRTY queue attribute.
CLWLRANK(integer)
Specifies the rank of the queue for the purposes of cluster workload distribution. This parameter is valid only for local, remote, and alias queues. The value must be in the range zero through 9 where zero is the lowest rank and 9 is the highest. For more information about this attribute, see CLWLRANK queue attribute.
CLWLUSEQ
Specifies the behavior of an MQPUT operation when the target queue has a local instance and at least one remote cluster instance. The parameter has no effect when the MQPUT originates from a cluster channel. This parameter is valid only for local queues.
QMGR
The behavior is as specified by the CLWLUSEQ parameter of the queue manager definition.
ANY
The queue manager is to treat the local queue as another instance of the cluster queue for the purposes of workload distribution.
LOCAL
The local queue is the only target of the MQPUT operation.
CMDSCOPE
This parameter applies to z/OS only. It specifies where the command is run when the queue manager is a member of a queue-sharing group.
CMDSCOPE must be blank, or the local queue manager, if QSGDISP is set to GROUP or SHARED.
''
The command is run on the queue manager on which it was entered.
QmgrName
The command is run on the queue manager you specify, providing the queue manager is active within the queue-sharing group.

You can specify a queue manager name, other than the queue manager on which the command was entered. You can specify another name, only if you are using a queue-sharing group environment and if the command server is enabled.

*
The command is executed on the local queue manager and is also passed to every active queue manager in the queue-sharing group. The effect of * is the same as entering the command on every queue manager in the queue-sharing group.
CUSTOM(string)
The custom attribute for new features.

This attribute is reserved for the configuration of new features before separate attributes are introduced. It can contain the values of zero or more attributes as pairs of attribute name and value, separated by at least one space. The attribute name and value pairs have the form NAME(VALUE). Single quotation marks must be escaped with another single quotation mark.

This description is updated when features using this attribute are introduced. At the moment, there are no values for CUSTOM.

DEFBIND
Specifies the binding to be used when the application specifies MQOO_BIND_AS_Q_DEF on the MQOPEN call, and the queue is a cluster queue.
OPEN
The queue handle is bound to a specific instance of the cluster queue when the queue is opened.
NOTFIXED
The queue handle is not bound to any instance of the cluster queue. The queue manager selects a specific queue instance when the message is put using MQPUT. It changes that selection later, if the need arises.
GROUP
Allows an application to request that a group of messages is allocated to the same destination instance.

Multiple queues with the same name can be advertised in a queue manager cluster. An application can send all messages to a single instance, MQOO_BIND_ON_OPEN. It can allow a workload management algorithm to select the most suitable destination on a per message basis, MQOO_BIND_NOT_FIXED. It can allow an application to request that a group of messages be all allocated to the same destination instance. The workload balancing reselects a destination between groups of messages, without requiring an MQCLOSE and MQOPEN of the queue.

The MQPUT1 call always behaves as if NOTFIXED is specified.

This parameter is valid only on AIX, HP-UX, Linux, IBM i, Solaris, Windows, and z/OS.

DEFPRESP
Specifies the behavior to be used by applications when the put response type, within the MQPMO options, is set to MQPMO_RESPONSE_AS_Q_DEF.
SYNC
Put operations to the queue specifying MQPMO_RESPONSE_AS_Q_DEF are issued as if MQPMO_SYNC_RESPONSE is specified instead.
ASYNC
Put operations to the queue specifying MQPMO_RESPONSE_AS_Q_DEF are issued as if MQPMO_ASYNC_RESPONSE is specified instead; see MQPMO options (MQLONG).
DEFPRTY(integer)
The default priority of messages put on the queue. The value must be in the range 0 - 9. Zero is the lowest priority, through to the MAXPRTY queue manager parameter. The default value of MAXPRTY is 9.
DEFPSIST
Specifies the message persistence to be used when applications specify the MQPER_PERSISTENCE_AS_Q_DEF option.
NO
Messages on this queue are lost across a restart of the queue manager.
YES
Messages on this queue survive a restart of the queue manager.

On z/OS, N and Y are accepted as synonyms of NO and YES.

DEFREADA
Specifies the default read ahead behavior for non-persistent messages delivered to the client. Enabling read ahead can improve the performance of client applications consuming non-persistent messages.
NO
Non-persistent messages are not read ahead unless the client application is configured to request read ahead.
YES
Non-persistent messages are sent to the client before an application requests them. Non-persistent messages can be lost if the client ends abnormally or if the client does not delete all the messages it is sent.
DISABLED
Read ahead of non-persistent messages in not enabled for this queue. Messages are not sent ahead to the client regardless of whether read ahead is requested by the client application.
DEFSOPT
The default share option for applications opening this queue for input:
EXCL
The open request is for exclusive input from the queue
SHARED
The open request is for shared input from the queue
DEFTYPE
Queue definition type.
This parameter is supported only on model queues.
PERMDYN
A permanent dynamic queue is created when an application issues an MQOPEN MQI call with the name of this model queue specified in the object descriptor (MQOD).

On z/OS, the dynamic queue has a disposition of QMGR.

SHAREDYN
This option is available on z/OS only.

A permanent dynamic queue is created when an application issues an MQOPEN API call with the name of this model queue specified in the object descriptor (MQOD).

The dynamic queue has a disposition of SHARED.

TEMPDYN
A temporary dynamic queue is created when an application issues an MQOPEN API call with the name of this model queue specified in the object descriptor (MQOD).

On z/OS, the dynamic queue has a disposition of QMGR.

Do not specify this value for a model queue definition with a DEFPSIST parameter of YES.

If you specify this option, do not specify INDXTYPE(MSGTOKEN).

DESCR(string)
Plain-text comment. It provides descriptive information about the object when an operator issues the DISPLAY QUEUE command.

It must contain only displayable characters. The maximum length is 64 characters. In a DBCS installation, it can contain DBCS characters (subject to a maximum length of 64 bytes).

Note: Use characters that are in the coded character set identifier (CCSID) of this queue manager. If you do not do so and if the information is sent to another queue manager, they might be translated incorrectly.
DISTL
DISTL sets whether distribution lists are supported by the partner queue manager.
YES
Distribution lists are supported by the partner queue manager.
NO
Distribution lists are not supported by the partner queue manager.
Note: You do not normally change this parameter, because it is set by the MCA. However you can set this parameter when defining a transmission queue if the distribution list capability of the destination queue manager is known.

This parameter is valid only on AIX, HP-UX, Linux, Solaris, and Windows.

FORCE
This parameter applies only to the ALTER command on alias, local and remote queues.

Specify this parameter to force completion of the command in the following circumstances.

For an alias queue, if both of the following are true:
  • The TARGET parameter specifies a queue
  • An application has this alias queue open
For a local queue, if both of the following are true:
  • The NOSHARE parameter is specified
  • More than one application has the queue open for input
FORCE is also needed if both of the following are true:
  • The USAGE parameter is changed
  • Either one or more messages are on the queue, or one or more applications have the queue open

Do not change the USAGE parameter while there are messages on the queue; the format of messages changes when they are put on a transmission queue.

For a remote queue, if both of the following are true:
  • The XMITQ parameter is changed
  • One or more applications has this queue open as a remote queue
FORCE is also needed if both of the following are true:
  • Any of the RNAME, RQMNAME, or XMITQ parameters are changed
  • One or more applications has a queue open that resolved through this definition as a queue manager alias
Note: FORCE is not required if this definition is in use as a reply-to queue alias only.

If FORCE is not specified in the circumstances described, the command is unsuccessful.

GET
Specifies whether applications are to be permitted to get messages from this queue:
ENABLED
Messages can be retrieved from the queue, by suitably authorized applications.
DISABLED
Applications cannot retrieve messages from the queue.

This parameter can also be changed using the MQSET API call.

HARDENBO&NOHARDENBO
Specifies whether hardening is used to ensure that the count of the number of times that a message is backed out is accurate.

This parameter is supported only on local and model queues.

HARDENBO
The count is hardened.
NOHARDENBO
The count is not hardened.
Note: This parameter affects only IBM WebSphere MQ for z/OS. It can be set on other platforms but is ineffective.
INDXTYPE
The type of index maintained by the queue manager to expedite MQGET operations on the queue. For shared queues, the type of index determines the type of MQGET operations that can be used.

This parameter is supported only on local and model queues.

Messages can be retrieved using a selection criterion only if an appropriate index type is maintained, as the following table shows:

Retrieval selection criterion Index type required
  Shared queue Other queue
None (sequential retrieval) Any Any
Message identifier MSGID or NONE Any
Correlation identifier CORRELID Any
Message and correlation identifiers MSGID or CORRELID Any
Group identifier GROUPID Any
Grouping GROUPID GROUPID
Message token Not allowed MSGTOKEN
where the value of INDXTYPE parameter has the following values:
NONE
No index is maintained. Use NONE when messages are typically retrieved sequentially or use both the message identifier and the correlation identifier as a selection criterion on the MQGET call.
MSGID
An index of message identifiers is maintained. Use MSGID when messages are typically retrieved using the message identifier as a selection criterion on the MQGET call with the correlation identifier set to NULL.
CORRELID
An index of correlation identifiers is maintained. Use CORRELID when messages are typically retrieved using the correlation identifier as a selection criterion on the MQGET call with the message identifier set to NULL.
GROUPID
An index of group identifiers is maintained. Use GROUPID when messages are retrieved using message grouping selection criteria.
Note:
  1. You cannot set INDXTYPE to GROUPID if the queue is a transmission queue.
  2. The queue must use a CF structure at CFLEVEL(3), to specify a shared queue with INDXTYPE(GROUPID).
MSGTOKEN
An index of message tokens is maintained. Use MSGTOKEN when the queue is a WLM-managed queue that you are using with the Workload Manager functions of z/OS.
Note: You cannot set INDXTYPE to MSGTOKEN if:
  • The queue is a model queue with a definition type of SHAREDYN
  • The queue is a temporary dynamic queue
  • The queue is a transmission queue
  • You specify QSGDISP(SHARED)

For queues that are not shared and do not use grouping or message tokens, the index type does not restrict the type of retrieval selection. However, the index is used to expedite GET operations on the queue, so choose the type that corresponds to the most common retrieval selection.

If you are altering or replacing an existing local queue, you can change the INDXTYPE parameter only in the cases indicated in the following table:
Queue type NON-SHARED SHARED
Queue state Uncommitted activity No uncommitted activity, messages present No uncommitted activity, and empty Open or messages present Not open, and empty
Change INDXTYPE from: To: Change allowed?
NONE MSGID No Yes Yes No Yes
NONE CORRELID No Yes Yes No Yes
NONE MSGTOKEN No No Yes - -
NONE GROUPID No No Yes No Yes
MSGID NONE No Yes Yes No Yes
MSGID CORRELID No Yes Yes No Yes
MSGID MSGTOKEN No No Yes - -
MSGID GROUPID No No Yes No Yes
CORRELID NONE No Yes Yes No Yes
CORRELID MSGID No Yes Yes No Yes
CORRELID MSGTOKEN No No Yes - -
CORRELID GROUPID No No Yes No Yes
MSGTOKEN NONE No Yes Yes - -
MSGTOKEN MSGID No Yes Yes - -
MSGTOKEN CORRELID No Yes Yes - -
MSGTOKEN GROUPID No No Yes - -
GROUPID NONE No No Yes No Yes
GROUPID MSGID No No Yes No Yes
GROUPID CORRELID No No Yes No Yes
GROUPID MSGTOKEN No No Yes - -

This parameter is supported only on z/OS. On other platforms, all queues are automatically indexed.

INITQ(string)
The local name of the initiation queue on this queue manager, to which trigger messages relating to this queue are written; see Rules for naming IBM WebSphere MQ objects .

This parameter is supported only on local and model queues.

LIKE(qtype-name)
The name of a queue, with parameters that are used to model this definition.

If this field is not completed, the values of undefined parameter fields are taken from one of the following definitions. The choice depends on the queue type:

Queue type Definition
Alias queue SYSTEM.DEFAULT.ALIAS.QUEUE
Local queue SYSTEM.DEFAULT.LOCAL.QUEUE
Model queue SYSTEM.DEFAULT.MODEL.QUEUE
Remote queue SYSTEM.DEFAULT.REMOTE.QUEUE
For example, not completing this parameter is equivalent to defining the following value of LIKE for an alias queue:
LIKE(SYSTEM.DEFAULT.ALIAS.QUEUE)

If you require different default definitions for all queues, alter the default queue definitions instead of using the LIKE parameter.

On z/OS, the queue manager searches for an object with the name and queue type you specify with a disposition of QMGR, COPY, or SHARED. The disposition of the LIKE object is not copied to the object you are defining.
Note:
  1. QSGDISP (GROUP) objects are not searched.
  2. LIKE is ignored if QSGDISP(COPY) is specified.
MAXDEPTH(integer)
The maximum number of messages allowed on the queue.

This parameter is supported only on local and model queues.

On AIX, HP-UX, Linux, Solaris, Windows, and z/OS, specify a value in the range zero through 999999999.

This parameter is valid only on AIX, HP-UX, Linux, Solaris, Windows, and z/OS.

On any other IBM WebSphere MQ platform, specify a value in the range zero through 640000.

Other factors can still cause the queue to be treated as full, for example, if there is no further hard disk space available.

If this value is reduced, any messages that are already on the queue that exceed the new maximum remain intact.

MAXMSGL(integer)
The maximum length (in bytes) of messages on this queue.

This parameter is supported only on local and model queues.

On AIX, HP-UX, Linux, Solaris, and Windows, specify a value in the range zero to the maximum message length for the queue manager. See the MAXMSGL parameter of the ALTER QMGR command, ALTER QMGR MAXMSGL.

On z/OS, specify a value in the range zero through 100 MB (104 857 600 bytes).

Message length includes the length of user data and the length of headers. For messages put on the transmission queue, there are additional transmission headers. Allow an additional 4000 bytes for all the message headers.

If this value is reduced, any messages that are already on the queue with length that exceeds the new maximum are not affected.

Applications can use this parameter to determine the size of buffer for retrieving messages from the queue. Therefore, the value can be reduced only if it is known that this reduction does not cause an application to operate incorrectly.

Note that by adding the digital signature and key to the message, IBM WebSphere MQ Advanced Message Security increases the length of the message.

MONQ
Controls the collection of online monitoring data for queues.

This parameter is supported only on local and model queues.

QMGR
Collect monitoring data according to the setting of the queue manager parameter MONQ.
OFF
Online monitoring data collection is turned off for this queue.
LOW
If the value of the MONQ parameter of the queue manager is not NONE, online monitoring data collection is turned on for this queue.
MEDIUM
If the value of the MONQ parameter of the queue manager is not NONE, online monitoring data collection is turned on for this queue.
HIGH
If the value of the MONQ parameter of the queue manager is not NONE, online monitoring data collection is turned on for this queue.
There is no distinction between the values LOW, MEDIUM, and HIGH. These values all turn data collection on, but do not affect the rate of collection.

When this parameter is used in an ALTER queue command, the change is effective only when the queue is next opened.

MSGDLVSQ
Message delivery sequence.

This parameter is supported only on local and model queues.

PRIORITY
Messages are delivered (in response to MQGET API calls) in first-in-first-out (FIFO) order within priority.
FIFO
Messages are delivered (in response to MQGET API calls) in FIFO order. Priority is ignored for messages on this queue.

The message delivery sequence parameter can be changed from PRIORITY to FIFO while there are messages on the queue. The order of the messages already on the queue is not changed. Messages added to the queue later take the default priority of the queue, and so might be processed before some of the existing messages.

If the message delivery sequence is changed from FIFO to PRIORITY, the messages put on the queue while the queue was set to FIFO take the default priority.

Note: If INDXTYPE(GROUPID) is specified with MSGDLVSQ(PRIORITY), the priority in which groups are retrieved is based on the priority of the first message within each group. The priorities 0 and 1 are used by the queue manager to optimize the retrieval of messages in logical order. The first message in each group must not use these priorities. If it does, the message is stored as if it was priority two.
NPMCLASS
The level of reliability to be assigned to non-persistent messages that are put to the queue:
NORMAL
Non-persistent messages are lost after a failure, or queue manager shutdown. These messages are discarded on a queue manager restart.
HIGH
The queue manager attempts to retain non-persistent messages on this queue over a queue manager restart or switch over.

You cannot set this parameter on z/OS.

PROCESS(string)
The local name of the IBM WebSphere MQ process.

This parameter is supported only on local and model queues.

This parameter is the name of a process instance that identifies the application started by the queue manager when a trigger event occurs; see Rules for naming IBM WebSphere MQ objects .

The process definition is not checked when the local queue is defined, but it must be available for a trigger event to occur.

If the queue is a transmission queue, the process definition contains the name of the channel to be started. This parameter is optional for transmission queues on AIX, HP-UX, IBM i, Linux, Solaris, Windows, and z/OS. If you do not specify it, the channel name is taken from the value specified for the TRIGDATA parameter.

PROPCTL
Property control attribute. The attribute is optional. It is applicable to local, alias, and model queues.
PROPCTL options are as follows. The options do not affect message properties in the MQMD or MQMD extension.
ALL

Set ALL so that an application can read all the properties of the message either in MQRFH2 headers, or as properties of the message handle.

The ALL option enables applications that cannot be changed to access all the message properties from MQRFH2 headers. Applications that can be changed, can access all the properties of the message as properties of the message handle.

In some cases, the format of data in MQRFH2 headers in the received message might be different to the format in the message when it was sent.

COMPAT

Set COMPAT so that unmodified applications that expect JMS-related properties to be in an MQRFH2 header in the message data continue to work as before. Applications that can be changed, can access all the properties of the message as properties of the message handle.

If the message contains a property with a prefix of mcd., jms., usr., or mqext., all message properties are delivered to the application. If no message handle is supplied, properties are returned in an MQRFH2 header. If a message handle is supplied, all properties are returned in the message handle.

If the message does not contain a property with one of those prefixes, and the application does not provide a message handle, no message properties are returned to the application. If a message handle is supplied, all properties are returned in the message handle.

In some cases, the format of data in MQRFH2 headers in the received message might be different to the format in the message when it was sent.

FORCE

Force all applications to read message properties from MQRFH2 headers.

Properties are always returned in the message data in an MQRFH2 header regardless of whether the application specifies a message handle.

A valid message handle supplied in the MsgHandle field of the MQGMO structure on the MQGET call is ignored. Properties of the message are not accessible using the message handle.

In some cases, the format of data in MQRFH2 headers in the received message might be different to the format in the message when it was sent.

NONE

If a message handle is supplied, all the properties are returned in the message handle.

All message properties are removed from the message body before it is delivered to the application.

V6COMPAT

Set V6COMPAT so that applications that expect to receive the same MQRFH2 created by a sending application, can receive it as it was sent. The data in the MQRFH2 header is subject to character set conversion and numeric encoding changes. If the application sets properties using MQSETMP, the properties are not added to the MQRFH2 header created by the application. The properties are accessible only by using the MQINQMP call. The properties are transmitted in an extra MQRFH2 that is visible to channel exits, but not to MQI programs. If properties are inserted in the MQRFH2 header by the sending application, they are only accessible to the receiving application in the MQRFH2 header. You cannot query properties set this way by calling MQINQMP. This behavior of properties and application created MQRFH2 headers occurs only when V6COMPAT is set.

The receiving application can override the setting of V6COMPAT, by setting an MQGMO_PROPERTIES option, such as MQGMO_PROPERTIES_IN_HANDLE. The default setting of MQGMO_PROPERTIES is MQGMO_PROPERTIES_AS_Q_DEF, which leaves the property setting as defined by the PROPCTL setting on the resolved receiving queue.

Note: If the PSPROP subscription attribute is set to RFH2, the queue manager might add publish/subscribe properties to the psc folder in the application-created MQRFH2 header. Otherwise, the queue manager does not modify the application-created MQRFH2 header.

Special rules apply to setting V6COMPAT:

  1. You must set V6COMPAT on both of the queues accessed by MQPUT and MQGET.
    • You might find the effect of V6COMPAT does not require setting V6COMPAT on the queue that MQPUT writes to. The reason is that in many cases MQPUT does not reorganize the contents of an MQRFH2. Setting V6COMPAT has no apparent effect.
    • V6COMPAT appears to take effect only when it is set on the queue that is accessed by the application receiving the message.
    Despite these appearances, it is important you set V6COMPAT for both the sender and receiver of a message. In some circumstances, V6COMPAT works only if it is set at both ends of the transfer.
  2. If you set V6COMPAT on either an alias queue or a local queue, the result is the same.

    For example, an alias queue, QA1, has a target queue Q1. An application opens QA1. Whichever of the pairs of definitions in Figure 1 are set, the result is the same. A message is placed on Q1, with the MQRFH2 created by the application preserved exactly as it was when it was passed to the queue manager.

    Figure 1. Equivalent definitions of V6COMPAT
    DEFINE QLOCAL(Q1)  PROPCTL(V6COMPAT)
    DEFINE QALIAS(QA1) TARGET(Q1)
    DEFINE QLOCAL(Q1)
    DEFINE QALIAS(QA1) TARGET(Q1) PROPCTL(V6COMPAT)
  3. You can set V6COMPAT on the transmission queue, or a queue that resolves to a transmission queue. The result is to transmit any MQRFH2 in a message exactly as it was created by an application. You cannot set V6COMPAT on a QREMOTE definition.

    No other PROPCTL queue options behave this way. To control the way message properties are transmitted to a queue manager running IBM WebSphere MQ Version 6.0 or earlier, set the PROPCTL channel attribute.

  4. For publish/subscribe, V6COMPAT must be set on a queue that resolves to the destination for a publication.
    • For unmanaged publish/subscribe, set V6COMPAT on a queue that is in the name resolution path for the queue passed to MQSUB. If a subscription is created administratively, set V6COMPAT on a queue that is in the name resolution path for the destination set for the subscription.
    • For managed publish/subscribe, set V6COMPAT on the model managed durable and managed non-durable queues for subscription topics. The default model managed queues are SYSTEM.MANAGED.DURABLE and SYSTEM.MANAGED.NDURABLE. By using different model queues for different topics, some publications are received with their original MQRFH2, and others with message property control set by other values of PROPCTL.
    • For queued publish/subscribe, you must identify the queues used by the publishing and subscribing applications. Set V6COMPAT on those queues, as if the publisher and subscriber are using point to point messaging.
The effect of setting V6COMPAT on a message sent to another queue manager is as follows:
To a Version 7.1 queue manager

If a message contains internally set message properties, or message properties set by MQSETMP, the local queue manager adds an MQRFH2. The additional MQRFH2 is placed before any application created MQRFH2 headers. The local queue manager passes the modified message to the channel.

The new MQRFH2 header is flagged MQRFH_INTERNAL (X'8000000') in the MQRFH2 Flags field; see Flags (MQLONG) .

The channel message, and send and receive exits, are passed the entire message including the additional MQRFH2.

The action of the remote channel depends on whether V6COMPAT is set for the target queue. If it is set, then the internally set properties in the initial MQRFH2 are available to an application in the message handle. The application created MQRFH2 is received unchanged, except for character conversion and numeric encoding transformations.

To a Version 7.0.1 queue manager
Internally set properties are discarded. The MQRFH2 header is transferred unmodified.
To a Version 6.0 or earlier queue manager
Internally set properties are discarded. The MQRFH2 header is transferred unmodified. PROPCTL channel options are applied after internally set properties are discarded.
PUT
Specifies whether messages can be put on the queue.
ENABLED
Messages can be added to the queue (by suitably authorized applications).
DISABLED
Messages cannot be added to the queue.

This parameter can also be changed using the MQSET API call.

QDEPTHHI(integer)
The threshold against which the queue depth is compared to generate a Queue Depth High event.

This parameter is supported only on local and model queues.

This event indicates that an application put a message on a queue resulting in the number of messages on the queue becoming greater than or equal to the queue depth high threshold. See the QDPHIEV parameter.

The value is expressed as a percentage of the maximum queue depth (MAXDEPTH parameter), and must be in the range zero through 100 and no less than QDEPTHLO.

QDEPTHLO(integer)
The threshold against which the queue depth is compared to generate a Queue Depth Low event.

This parameter is supported only on local and model queues.

This event indicates that an application retrieved a message from a queue resulting in the number of messages on the queue becoming less than or equal to the queue depth low threshold. See the QDPLOEV parameter.

The value is expressed as a percentage of the maximum queue depth (MAXDEPTH parameter), and must be in the range zero through 100 and no greater than QDEPTHHI.

QDPHIEV
Controls whether Queue Depth High events are generated.

This parameter is supported only on local and model queues.

A Queue Depth High event indicates that an application put a message on a queue resulting in the number of messages on the queue becoming greater than or equal to the queue depth high threshold. See the QDEPTHHI parameter.

Note: The value of this parameter can change implicitly, and shared queues on z/OS affect the event. See the description of the Queue Depth High event in Queue Depth High.
ENABLED
Queue Depth High events are generated
DISABLED
Queue Depth High events are not generated
QDPLOEV
Controls whether Queue Depth Low events are generated.

This parameter is supported only on local and model queues.

A Queue Depth Low event indicates that an application retrieved a message from a queue resulting in the number of messages on the queue becoming less than or equal to the queue depth low threshold. See the QDEPTHLO parameter.

Note: The value of this parameter can change implicitly. For more information about this event, and the effect that shared queues on z/OS have on this event, see Queue Depth Low .
ENABLED
Queue Depth Low events are generated
DISABLED
Queue Depth Low events are not generated
QDPMAXEV
Controls whether Queue Full events are generated.

This parameter is supported only on local and model queues.

A Queue Full event indicates that a put to a queue was rejected because the queue is full. The queue depth reached its maximum value.

Note: The value of this parameter can change implicitly. For more information about this event, and the effect that shared queues on z/OS have on this event, see Queue Full.
ENABLED
Queue Full events are generated
DISABLED
Queue Full events are not generated
QSGDISP
This parameter applies to z/OS only.

Specifies the disposition of the object within the group.

Action of ALTER depending on different values of QSGDISP.

QSGDISP ALTER
COPY The object definition resides on the page set of the queue manager that executes the command. The object was defined using a command that had the parameters QSGDISP(COPY). Any object residing in the shared repository, or any object defined using a command that had the parameters QSGDISP(QMGR), is not affected by this command.
GROUP The object definition resides in the shared repository. The object was defined using a command that had the parameters QSGDISP(GROUP). Any object residing on the page set of the queue manager that executes the command (except a local copy of the object), or any object defined using a command that had the parameters QSGDISP(SHARED), is not affected by this command. If the command is successful, the following command is generated and sent to all active queue managers in the queue-sharing group to attempt to refresh local copies on page set zero:
DEFINE QUEUE(QNAME)
REPLACE QSGDISP(COPY)
The ALTER for the group object takes effect regardless of whether the generated command with QSGDISP(COPY) fails.
PRIVATE The object resides on the page set of the queue manager that executes the command, and was defined with QSGDISP(QMGR) or QSGDISP(COPY). Any object residing in the shared repository is unaffected.
QMGR The object definition resides on the page set of the queue manager that executes the command. The object was defined using a command that had the parameters QSGDISP(QMGR). Any object residing in the shared repository, or any local copy of such an object, is not affected by this command.
SHARED This value applies only to local queues. The object definition resides in the shared repository. The object was defined using a command that had the parameters QSGDISP(SHARED). Any object residing on the page set of the queue manager that executes the command, or any object defined using a command that had the parameters QSGDISP(GROUP), is not affected by this command. If the queue is clustered, a command is generated and sent to all active queue managers in the queue-sharing group to notify them of this clustered, shared queue.
QSVCIEV
Controls whether Service Interval High or Service Interval OK events are generated.

This parameter is supported only on local and model queues and is ineffective if it is specified on a shared queue.

A Service Interval High event is generated when a check indicates that no messages were retrieved from the queue for at least the time indicated by the QSVCINT parameter.

A Service Interval OK event is generated when a check indicates that messages were retrieved from the queue within the time indicated by the QSVCINT parameter.

Note: The value of this parameter can change implicitly. For more information, see the description of the Service Interval High and Service Interval OK events in Queue Service Interval High and Queue Service Interval OK.
HIGH
Service Interval High events are generated
OK
Service Interval OK events are generated
NONE
No service interval events are generated
QSVCINT(integer)
The service interval used for comparison to generate Service Interval High and Service Interval OK events.

This parameter is supported only on local and model queues and is ineffective if it is specified on a shared queue.

See the QSVCIEV parameter.

The value is in units of milliseconds, and must be in the range zero through 999999999.

RETINTVL(integer)
The number of hours from when the queue was defined, after which the queue is no longer needed. The value must be in the range 0 - 999,999,999.

This parameter is supported only on local and model queues.

The CRDATE and CRTIME can be displayed using the DISPLAY QUEUE command.

This information is available for use by an operator or a housekeeping application to delete queues that are no longer required.

Note: The queue manager does not delete queues based on this value, nor does it prevent queues from being deleted if their retention interval is not expired. It is the responsibility of the user to take any required action.
RNAME(string)
Name of remote queue. This parameter is the local name of the queue as defined on the queue manager specified by RQMNAME.
This parameter is supported only on remote queues.
  • If this definition is used for a local definition of a remote queue, RNAME must not be blank when the open occurs.
  • If this definition is used for a queue manager alias definition, RNAME must be blank when the open occurs.

    In a queue manager cluster, this definition applies only to the queue manager that made it. To advertise the alias to the whole cluster, add the CLUSTER attribute to the remote queue definition.

  • If this definition is used for a reply-to queue alias, this name is the name of the queue that is to be the reply-to queue.
The name is not checked to ensure that it contains only those characters normally allowed for queue names; see Rules for naming IBM WebSphere MQ objects .
RQMNAME(string)
The name of the remote queue manager on which the queue RNAME is defined.
This parameter is supported only on remote queues.
  • If an application opens the local definition of a remote queue, RQMNAME must not be blank or the name of the local queue manager. When the open occurs, if XMITQ is blank there must be a local queue of this name, which is to be used as the transmission queue.
  • If this definition is used for a queue manager alias, RQMNAME is the name of the queue manager that is being aliased. It can be the name of the local queue manager. Otherwise, if XMITQ is blank, when the open occurs there must be a local queue of this name, which is to be used as the transmission queue.
  • If RQMNAME is used for a reply-to queue alias, RQMNAME is the name of the queue manager that is to be the reply-to queue manager.
The name is not checked to ensure that it contains only those characters normally allowed for IBM WebSphere MQ object names; see Rules for naming IBM WebSphere MQ objects.
SCOPE
Specifies the scope of the queue definition.
This parameter is supported only on alias, local, and remote queues.
QMGR
The queue definition has queue manager scope. This means that the definition of the queue does not extend beyond the queue manager that owns it. You can open a queue for output that is owned by another queue manager in either of two ways:
  1. Specify the name of the owning queue manager.
  2. Open a local definition of the queue on the other queue manager.
CELL
The queue definition has cell scope. Cell scope means that the queue is known to all the queue managers in the cell. A queue with cell scope can be opened for output merely by specifying the name of the queue. The name of the queue manager that owns the queue need not be specified.

If there is already a queue with the same name in the cell directory, the command fails. The REPLACE option does not affect this situation.

This value is valid only if a name service supporting a cell directory is configured.
Restriction: The DCE name service is no longer supported.

This parameter is valid only on UNIX and Linux systems, and Windows.

SHARE and NOSHARE
Specifies whether multiple applications can get messages from this queue.
This parameter is supported only on local and model queues.
SHARE
More than one application instance can get messages from the queue.
NOSHARE
Only a single application instance can get messages from the queue.
STATQ
Specifies whether statistics data collection is enabled:
QMGR
Statistics data collection is based on the setting of the STATQ parameter of the queue manager.
ON
If the value of the STATQ parameter of the queue manager is not NONE, statistics data collection for the queue is enabled.
OFF
Statistics data collection for the queue is disabled.

If this parameter is used in an ALTER queue command, the change is effective only for connections to the queue manager made after the change to the parameter.

This parameter is valid only on IBM i, UNIX and Linux systems, and Windows.

STGCLASS(string)
The name of the storage class.

This parameter is supported only on local and model queues.

This parameter is an installation-defined name.

This parameter is valid on z/OS only.

The first character of the name must be uppercase A through Z, and subsequent characters either uppercase A through Z or numeric 0 through 9.

Note: You can change this parameter only if the queue is empty and closed.

If you specify QSGDISP(SHARED) or DEFTYPE(SHAREDYN), this parameter is ignored.

TARGET(string)
The name of the queue or topic object being aliased; See Rules for naming IBM WebSphere MQ objects . The object can be a queue or a topic as defined by TARGTYPE. The maximum length is 48 characters.

This parameter is supported only on alias queues.

This object needs to be defined only when an application process opens the alias queue.

The TARGQ parameter, defined in IBM WebSphere MQ Version 6.0, is renamed to TARGET from version 7.0 and generalized to allow you to specify the name of either a queue or a topic. The default value for TARGET is a queue, therefore TARGET(my_queue_name) is the same as TARGQ(my_queue_name). The TARGQ attribute is retained for compatibility with your existing programs. If you specify TARGET, you cannot also specify TARGQ.
TARGTYPE(string)
The type of object to which the alias resolves.
QUEUE
The alias resolves to a queue.
TOPIC
The alias resolves to a topic.

TRIGDATA(string)
The data that is inserted in the trigger message. The maximum length of the string is 64 bytes.

This parameter is supported only on local and model queues.

For a transmission queue on AIX, HP-UX, IBM i, Linux, Solaris, Windows, and z/OS, you can use this parameter to specify the name of the channel to be started.

This parameter can also be changed using the MQSET API call.

TRIGDPTH(integer)
The number of messages that have to be on the queue before a trigger message is written, if TRIGTYPE is DEPTH. The value must be in the range 1 - 999,999,999.

This parameter is supported only on local and model queues.

This parameter can also be changed using the MQSET API call.

TRIGGER &NOTRIGGER
Specifies whether trigger messages are written to the initiation queue, named by the INITQ parameter, to trigger the application, named by the PROCESS parameter:
TRIGGER
Triggering is active, and trigger messages are written to the initiation queue.
NOTRIGGER
Triggering is not active, and trigger messages are not written to the initiation queue.

This parameter is supported only on local and model queues.

This parameter can also be changed using the MQSET API call.

TRIGMPRI(integer)
The message priority number that triggers this queue. The value must be in the range zero through to the MAXPRTY queue manager parameter; see DISPLAY QMGR for details.

This parameter can also be changed using the MQSET API call.

TRIGTYPE
Specifies whether and under what conditions a trigger message is written to the initiation queue. The initiation queue is (named by the INITQ parameter.
This parameter is supported only on local and model queues.
FIRST
Whenever the first message of priority equal to or greater than the priority specified by the TRIGMPRI parameter of the queue arrives on the queue.
EVERY
Every time a message arrives on the queue with priority equal to or greater than the priority specified by the TRIGMPRI parameter of the queue.
DEPTH
When the number of messages with priority equal to or greater than the priority specified by TRIGMPRI is equal to the number indicated by the TRIGDPTH parameter.
NONE
No trigger messages are written.

This parameter can also be changed using the MQSET API call.

USAGE
Queue usage.
This parameter is supported only on local and model queues.
NORMAL
The queue is not a transmission queue.
XMITQ
The queue is a transmission queue, which is used to hold messages that are destined for a remote queue manager. When an application puts a message to a remote queue, the message is stored on the appropriate transmission queue. It stays there, awaiting transmission to the remote queue manager.

If you specify this option, do not specify values for CLUSTER and CLUSNL and do not specify INDXTYPE(MSGTOKEN) or INDXTYPE(GROUPID).

XMITQ(string)
The name of the transmission queue to be used for forwarding messages to the remote queue. XMITQ is used with either remote queue or queue manager alias definitions.

This parameter is supported only on remote queues.

If XMITQ is blank, a queue with the same name as RQMNAME is used as the transmission queue.

This parameter is ignored if the definition is being used as a queue manager alias and RQMNAME is the name of the local queue manager.

It is also ignored if the definition is used as a reply-to queue alias definition.