1:
A cluster sender channel is in retry state.
This is
one of the common issues we face in Websphere MQ clusters
Environment.
(e.g)
1 : display
chs(*)
AMQ8417:
Display Channel Status details.
CHANNEL(TO.QM2)
XMITQ(SYSTEM.CLUSTER.TRANSMIT.QUEUE)
CONNAME(computer.ibm.com(1414))
CURRENT
CHLTYPE(CLUSSDR)
STATUS(RETRYING)
Cause of the
issue:
Either the remote
queue manager is not available or there is an incorrect parameter in
either the local manually defined cluster sender channel definition
or the remote cluster receiver definition.
Checks to be
done:
a) First check
whether the problem is the availability of the remote queue manager.
Are there any error messages?
b) Is the queue
manager active?
c) Is the queue
manager's listener running?
d) Is the queue
manager's channel able to start?
If the remote
queue manager is available there could be a problem with a channel
definition. Check the definition type of the cluster queue manager
for the channel in retry state. For example:
1 : dis
clusqmgr(*) deftype where(channel eq TO.QM2) AMQ8441: Display
Cluster
Queue Manager
details. CLUSQMGR(QM2) CHANNEL(TO.QM2) CLUSTER(DEMO)
DEFTYPE(CLUSSDRA)
If the definition
type is CLUSSDR the channel is using the local manual cluster sender
definition. Alter any incorrect parameters in the local manual
cluster sender definition and restart the channel.
If the definition
type is either CLUSSDRA or CLUSSDRB the channel is using an
auto-defined cluster sender channel based on the definition of a
remote cluster receiver channel. Alter any incorrect parameters in
the remote cluster receiver definition. For example, the conname may
be incorrect.
1 : alter
chl(to.qm2) chltype(clusrcvr) conname('newhost(1414)') AMQ8016:
WebSphere
MQ channel changed.
Changes to the
remote cluster receiver definition will be propagated out to any
cluster queue managers that are interested and the corresponding
auto-defined channels will be updated accordingly. You can check that
the updates have been propagated correctly by checking the changed
parameter. For example:
1 : dis
clusqmgr(qm2) conname AMQ8441: Display Cluster Queue Manager
details.
CLUSQMGR(QM2)
CHANNEL(TO.QM2) CLUSTER(CLUSDEMO) CONNAME(newhost(1414))
If the
auto-defined definition is now correct, restart the channel.
2:
Why DISPLAY CLUSQMGR shows CLUSQMGR names starting SYSTEM.TEMP. ?
DISPLAY CLUSQMGR
shows CLUSQMGR names starting SYSTEM.TEMP.
(e,g)
1 : display
clusqmgr(*)
AMQ8441:
Display Cluster Queue Manager details.
CLUSQMGR(QM1)
CLUSTER(DEMO)
CHANNEL(TO.QM1)
AMQ8441:
Display Cluster Queue Manager details.
CLUSQMGR(SYSTEM.TEMPUUID.computer.hursley.ibm.com(1414))
CLUSTER(DEMO)
CHANNEL(TO.QM2)
Cause:
This queue
manager has not received any information from the full repository
queue manager that the manually defined CLUSSDR channel points to.
The manually defined CLUSSDR channel should be in running state.
Checks and
Issue Rectification:
Check that the
CLUSRCVR definition is also correct, especially its conname and
cluster parameters. Alter the channel definition. It might take some
time for the remote queue managers to complete a retry cycle and
restart their channels with the corrected definition.
3:
Applications get rc=2035 MQRC_NOT_AUTHORIZED when trying to open a
queue in the cluster.
Applications get
rc=2035 MQRC_NOT_AUTHORIZED when trying to open a queue in the
cluster.
Cause:
If your
application gets MQRC_NOT_AUTHORIZED when trying to open a queue in a
cluster, but the authorization for that queue is correct, it is
likely that the application is not authorized to put to the cluster
transmission queue.
Checks and
Rectifications:
MQS_REPORT_NOAUTH:
See
MQS_REPORT_NOAUTH for information on using this environment variable
to better diagnose return code 2035 (MQRC_NOT_AUTHORIZED). The use of
this environment variable generates errors in the queue manager error
log, but does not generate a Failure Data Capture (FDC).
MQSAUTHERRORS:
See MQSAUTHERRORS
for information on using this environment variable to generate FDC
files related to return code 2035 (MQRC_NOT_AUTHORIZED). The use of
this environment variable generates an FDC, but does not generate
errors in the queue manager error log.
4:
Applications get rc=2085 MQRC_UNKNOWN_OBJECT_NAME when trying to open
a queue in the cluster.
Applications get
rc=2085 MQRC_UNKNOWN_OBJECT_NAME when trying to open a queue in the
cluster.
Cause:
The queue manager
where the object exists or this queue manager may not have
successfully entered the cluster. Make sure that they can each
display all of the full repositories in the cluster. Also make sure
that the CLUSSDR channels to the full repositories are not in retry
state.
(e.g)
1 : display
clusqmgr(*) qmtype status
AMQ8441:
Display Cluster Queue Manager details.
CLUSQMGR(QM1)
CLUSTER(DEMO)
CHANNEL(TO.QM1)
QMTYPE(NORMAL)
AMQ8441:
Display Cluster Queue Manager details.
CLUSQMGR(QM2)
CLUSTER(DEMO)
CHANNEL(TO.QM2)
QMTYPE(REPOS)
STATUS(RUNNING)
AMQ8441:
Display Cluster Queue Manager details.
CLUSQMGR(QM3)
CLUSTER(DEMO)
CHANNEL(TO.QM3)
QMTYPE(REPOS)
STATUS(RUNNING)
If the queue is
correctly in the cluster check that you have used appropriate open
options. You cannot GET from a remote cluster queue so make sure that
the open options are for output only.
5:
Applications get rc= 2189 MQRC_CLUSTER_RESOLUTION_ERROR when trying
to open a queue in the cluster.
Cause:
The queue is
being opened for the first time and the queue manager cannot make
contact with any full repositories. Make sure that the CLUSSDR
channels to the full repositories are not in retry state.
1 : display
clusqmgr(*) qmtype status
AMQ8441:
Display Cluster Queue Manager details.
CLUSQMGR(QM1)
CLUSTER(DEMO)
CHANNEL(TO.QM1)
QMTYPE(NORMAL)
AMQ8441:
Display Cluster Queue Manager details.
CLUSQMGR(QM2)
CLUSTER(DEMO)
CHANNEL(TO.QM2)
QMTYPE(REPOS)
STATUS(RUNNING)
AMQ8441:
Display Cluster Queue Manager details.
CLUSQMGR(QM3)
CLUSTER(DEMO)
CHANNEL(TO.QM3)
QMTYPE(REPOS)
STATUS(RUNNING)
If the queue is
correctly in the cluster check that you have used appropriate open
options. You cannot GET from a remote cluster queue so make sure that
the open options are for output only.
6:
Messages are not appearing on the destination queues.
Cause:
The messages may
be stuck at their origin queue manager. Make sure that the
SYSTEM.CLUSTER.TRANSMIT.QUEUE is empty and also that the channel to
the destination queue manager is running.
(e.g)
1 : display
ql(SYSTEM.CLUSTER.TRANSMIT.QUEUE) curdepth
AMQ8409:
Display Queue details.
QUEUE(SYSTEM.CLUSTER.TRANSMIT.QUEUE)
CURDEPTH(0)
2 : display
chs(TO.QM2)
AMQ8417:
Display Channel Status details.
CHANNEL(TO.QM2)
XMITQ(SYSTEM.CLUSTER.TRANSMIT.QUEUE)
CONNAME(comfrey.hursley.ibm.com(1415))
CURRENT
CHLTYPE(CLUSSDR)
STATUS(RUNNING)
7:
Return code=2082 MQRC_UNKNOWN_ALIAS_BASE_Q opening a queue in the
cluster.
Cause and
Rectification:
An MQOPEN or
MQPUT1 call was issued specifying an alias queue as the target, but
the BaseQName in the alias queue attributes is not recognized as a
queue name.
This reason code
can also occur when BaseQName is the name of a cluster queue that
cannot be resolved successfully.
MQRC_UNKNOWN_ALIAS_BASE_Q
might indicate that the application is specifying the ObjectQmgrName
of the queue manager that it is connecting to, and the queue manager
that is hosting the alias queue. This means that the queue manager
looks for the alias target queue on the specified queue manager and
fails because the alias target queue is not on the local queue
manager.
8:
Messages put to a cluster alias queue go to SYSTEM.DEAD.LETTER.QUEUE.
Symptom:
Messages put to
an alias queue go to SYSTEM.DEAD.LETTER.QUEUE with reason
MQRC_UNKNOWN_ALIAS_BASE_Q.
Cause:
A message is
routed to a queue manager where a clustered alias queue is defined. A
local target queue is not defined on that queue manager. Because the
message was put with the MQOO_BIND_ON_OPEN open option, the queue
manager cannot requeue the message.
When
MQOO_BIND_ON_OPEN is used, the cluster queue alias is firmly bound.
The resolved name is the name of the target queue and any queue
manager on which the cluster queue alias is defined. The queue
manager name is placed in the transmission queue header. If the
target queue does not exist on the queue manager to which the message
is sent, the message is put on the dead letter queue. The destination
is not recomputed, because the transmission header contains the name
of the target queue manager resolved by MQOO_BIND_ON_OPEN. If the
alias queue had been opened withMQOO_BIND_NOT_FIXED, then the
transmission queue header would contain a blank queue manager name,
and the destination would be recomputed. In which case, if the local
queue is defined elsewhere in the cluster, the message would be sent
there.
Solution:
a) Change all
alias queue definitions to specify DEFBIND (NOTFIXED).
b) Use
MQOO_BIND_NOT_FIXED as an open option when the queue is
opened.
c) If you specify
MQOO_BIND_ON_OPEN, ensure that a cluster alias that resolves
to a local queue defined on the same queue manager as the alias.
9:
A queue manager does not appear to have up to date information about
queues and channels in the cluster.
Cause:
Check that the
queue manager where the object exists and this queue manager are
still connected to the cluster. Make sure that they can each display
all of the full repositories in the cluster. Also make sure that the
CLUSSDR channels to the full repositories are not in retry state, as
above.
Next make sure
that the full repositories have enough CLUSSDR channels defined to
correctly connect them together. The updates to the cluster only flow
between the full repositories over manually defined CLUSSDR channels.
After the cluster has formed these will show as DEFTYPE(CLUSSDRB)
channels because they are both manual and automatic channels. There
must be enough of these to form a complete network among all of the
full repositories.
(e.g)
1 : dis
clusqmgr(SYSTEM.CLUSTER.TRANSMIT.QUEUE) curdepth
AMQ8441:
Display Cluster Queue Manager details.
CLUSQMGR(QM1)
CLUSTER(DEMO)
CHANNEL(TO.QM1)
DEFTYPE(CLUSSDRA) QMTYPE(NORMAL) STATUS(RUNNING)
AMQ8441:
Display Cluster Queue Manager details.
CLUSQMGR(QM2)
CLUSTER(DEMO)
CHANNEL(TO.QM2)
DEFTYPE(CLUSRCVR)
QMTYPE(REPOS)
AMQ8441:
Display Cluster Queue Manager details.
CLUSQMGR(QM3)
CLUSTER(DEMO)
CHANNEL(TO.QM3)
DEFTYPE(CLUSSDRB)
QMTYPE(REPOS)
STATUS(RUNNING)
AMQ8441:
Display Cluster Queue Manager details.
CLUSQMGR(QM4)
CLUSTER(DEMO)
CHANNEL(TO.QM4)
DEFTYPE(CLUSSDRA)
QMTYPE(NORMAL)
STATUS(RUNNING)
10:
No changes in the cluster are being reflected in the local queue
manager.
Cause:
The repository
manager process in not processing repository commands. Check that the
SYSTEM.CLUSTER.COMMAND.QUEUE is empty.
1 : display
ql(SYSTEM.CLUSTER.COMMAND.QUEUE) curdepth
AMQ8409:
Display Queue details.
QUEUE(SYSTEM.CLUSTER.COMMAND.QUEUE)
CURDEPTH(0)
Next check that
the channel initiator is running on z/OS®. Then check that there are
no error messages in the error logs indicating the queue manager has
a temporary resource shortage.
11:
DISPLAY CLUSQMGR, shows a queue manager twice.
DISPLAY CLUSQMGR,
shows a queue manager twice.
(e.g)
: display
clusqmgr(QM1) qmid
AMQ8441: Display
Cluster Queue Manager details.
CLUSQMGR(QM1)
CLUSTER(DEMO)
CHANNEL(TO.QM1)
QMID(QM1_2002-03-04_11.07.01)
AMQ8441: Display
Cluster Queue Manager details.
CLUSQMGR(QM1)
CLUSTER(DEMO)
CHANNEL(TO.QM1)
QMID(QM1_2002-03-04_11.04.19)
Cause:
1) The queue
manager might have been deleted, and then recreated and Redefined
without following right the procedure.
2) The queue
Manager might have been cold started on z/OS®, without following
right the procedure.
3) The cluster
functions correctly with the older version of the queue manager being
ignored, until it ages out of the cluster completely after about 90
days. To remove all trace of the queue manager immediately use the
RESET CLUSTER command from a full repository queue manager, to remove
the older unwanted queue manager and its queues from the cluster.
reset
cluster(DEMO) qmid('QM1_2002-03-04_11.04.19') action(FORCEREMOVE)
queues(yes)
AMQ8559: RESET
CLUSTER accepted.
Using the RESET
CLUSTER command stops auto-defined cluster sender channels for the
affected queue manager. You must manually restart any cluster sender
channels that are stopped, after completing the RESET CLUSTER
command.
12:
RESET CLUSTER and REFRESH CLUSTER commands were issued, but the queue
manager would not rejoin the cluster.
Cause:
1) A side effect
of the RESET and REFRESH commands may be that a channel is stopped,
in order that the correct version of the channel runs when the
command is completed.
2) Check that the
channels between the problem queue manager and the full repositories
are running and use the START CHANNEL command if necessary.
I have had the same issue. checked all the channels, listeners and everything. Recreated them only to discover later that there is one more step which was not mentioned anywhere, that was to give rights to SYSTEM.CLUSTER.TRANSMIT.QUEUE
ReplyDeletesetmqaut -m -n SYSTEM.CLUSTER.TRANSMIT.QUEUE -t q -g mqm +all
Hi
ReplyDeleteWe could see cluster receiver channel is in stopped state and to reduce the impact we have started. It is up and running.
When we verified the MQ logs nothing is recorded and my Team did not stop manually .
What is likely cause of the channel in stopped state . Please suggest us.
Hi Siva Garu,
ReplyDeleteCan I have your number pls...