Websphere MQ 回退队列配置
Websphere MQ Back-out queue configuration
我有 DMLC 侦听器侦听来自 Websphere MQ 7.5.0.2 的消息。当有毒消息时,我希望在MQ中的重试次数到期后将其放入回退Q中。
我在MQ上配置了回退队列,阈值为3。
然而,当我在侦听器上抛出异常时实际发生的情况是,消息仍然被重新传递超过 3 次,并且消息每次都返回到同一个队列并且循环不断重复。
MQ中回退阈值增加,但消息永远不会进入回退队列。
我是不是遗漏了什么地方?如果我想将消息放入回退队列,我应该怎么做。
参考下面的官方文档,没有任何额外的配置。
Websphere Poison Message Handling
我需要做任何额外的配置吗?
队列详细信息
AMQ8409: Display Queue details. (This is the Source Queue)
QUEUE(Q3) TYPE(QLOCAL)
ACCTQ(QMGR) ALTDATE(2020-03-12)
ALTTIME(22.16.44) BOQNAME(ORANGE.LOCAL.QUEUE)
BOTHRESH(4) CLUSNL( )
CLUSTER( ) CLCHNAME( )
CLWLPRTY(0) CLWLRANK(0)
CLWLUSEQ(QMGR) CRDATE(2019-09-16)
CRTIME(15.22.49) CURDEPTH(2)
CUSTOM( ) DEFBIND(OPEN)
DEFPRTY(0) DEFPSIST(NO)
DEFPRESP(SYNC) DEFREADA(NO)
DEFSOPT(SHARED) DEFTYPE(PREDEFINED)
DESCR( ) DISTL(NO)
GET(ENABLED) HARDENBO
INITQ( ) IPPROCS(0)
MAXDEPTH(5000) MAXMSGL(4194304)
MONQ(QMGR) MSGDLVSQ(PRIORITY)
NOTRIGGER NPMCLASS(NORMAL)
OPPROCS(0) PROCESS( )
PUT(ENABLED) PROPCTL(COMPAT)
QDEPTHHI(80) QDEPTHLO(20)
QDPHIEV(DISABLED) QDPLOEV(DISABLED)
QDPMAXEV(ENABLED) QSVCIEV(NONE)
QSVCINT(999999999) RETINTVL(999999999)
SCOPE(QMGR) SHARE
STATQ(QMGR) TRIGDATA( )
TRIGDPTH(1) TRIGMPRI(0)
TRIGTYPE(FIRST) USAGE(NORMAL)
AMQ8409: Display Queue details. (This is the backout queue)
QUEUE(ORANGE.LOCAL.QUEUE) TYPE(QLOCAL)
ACCTQ(QMGR) ALTDATE(2020-03-12)
ALTTIME(21.27.17) BOQNAME( )
BOTHRESH(0) CLUSNL( )
CLUSTER( ) CLCHNAME( )
CLWLPRTY(0) CLWLRANK(0)
CLWLUSEQ(QMGR) CRDATE(2020-03-12)
CRTIME(21.27.17) CURDEPTH(0)
CUSTOM( ) DEFBIND(OPEN)
DEFPRTY(0) DEFPSIST(NO)
DEFPRESP(SYNC) DEFREADA(NO)
DEFSOPT(SHARED) DEFTYPE(PREDEFINED)
DESCR( ) DISTL(NO)
GET(ENABLED) HARDENBO
INITQ( ) IPPROCS(0)
MAXDEPTH(5000) MAXMSGL(4194304)
MONQ(QMGR) MSGDLVSQ(PRIORITY)
NOTRIGGER NPMCLASS(NORMAL)
OPPROCS(0) PROCESS( )
PUT(ENABLED) PROPCTL(COMPAT)
QDEPTHHI(80) QDEPTHLO(20)
QDPHIEV(DISABLED) QDPLOEV(DISABLED)
QDPMAXEV(ENABLED) QSVCIEV(NONE)
QSVCINT(999999999) RETINTVL(999999999)
SCOPE(QMGR) SHARE
STATQ(QMGR) TRIGDATA( )
----------------------------------------------------------------------------------
Queue Permissions
AMQ8864: Display authority record details.
PROFILE(Q3) ENTITY(useradmin@DT-MachineName)
ENTTYPE(PRINCIPAL) OBJTYPE(QUEUE)
AUTHLIST(BROWSE,CHG,CLR,DLT,DSP,GET,INQ,PUT,PASSALL,PASSID,SET,SETALL,SETID)
AMQ8864: Display authority record details.
PROFILE(Q3) ENTITY(mqm@DT-MachineName)
ENTTYPE(GROUP) OBJTYPE(QUEUE)
AUTHLIST(BROWSE,CHG,CLR,DLT,DSP,GET,INQ,PUT,PASSALL,PASSID,SET,SETALL,SETID)
AMQ8864: Display authority record details.
PROFILE(Q3) ENTITY(user@domainName)
ENTTYPE(PRINCIPAL) OBJTYPE(QUEUE)
AUTHLIST(BROWSE,CHG,CLR,DLT,DSP,GET,INQ,PUT,PASSALL,PASSID,SET,SETALL,SETID)
AMQ8864: Display authority record details.
PROFILE(Q3) ENTITY(user2@domainName)
ENTTYPE(PRINCIPAL) OBJTYPE(QUEUE)
AUTHLIST(BROWSE,CHG,CLR,DLT,DSP,GET,INQ,PUT,PASSALL,PASSID,SET,SETALL,SETID)
AMQ8864: Display authority record details.
PROFILE(ORANGE.LOCAL.QUEUE) ENTITY(useradmin@DT-MachineName)
ENTTYPE(PRINCIPAL) OBJTYPE(QUEUE)
AUTHLIST(BROWSE,CHG,CLR,DLT,DSP,GET,INQ,PUT,PASSALL,PASSID,SET,SETALL,SETID)
AMQ8864: Display authority record details.
PROFILE(ORANGE.LOCAL.QUEUE) ENTITY(mqm@DT-MachineName)
ENTTYPE(GROUP) OBJTYPE(QUEUE)
AUTHLIST(BROWSE,CHG,CLR,DLT,DSP,GET,INQ,PUT,PASSALL,PASSID,SET,SETALL,SETID)
-----------------------------------------------------------------------------
Queue Manager Permissions
AMQ8864: Display authority record details.
PROFILE(SELF) ENTITY(user@domainName)
ENTTYPE(PRINCIPAL) OBJTYPE(QMGR)
AUTHLIST(ALTUSR,CHG,CONNECT,DLT,DSP,INQ,SET,SETALL,SETID,SYSTEM)
AMQ8864: Display authority record details.
PROFILE(@CLASS) ENTITY(user@domainName)
ENTTYPE(PRINCIPAL) OBJTYPE(QMGR)
AUTHLIST(NONE)
-------------------------------------------------------------------------------
**The Following error is seen the AMQERR01.LOG**
14-03-2020 00:18:01 - Process(7752.172) User(MUSR_MQADMIN) Program(amqzlaa0.exe)
Host(DT-MachineName) Installation(Installation1)
VRMF(7.5.0.2) QMgr(QM1)
AMQ8077: Entity 'user@domainNname' has insufficient authority to access object
'ORANGE.LOCAL.QUEUE'.
EXPLANATION:
The specified entity is not authorized to access the required object. The
following requested permissions are unauthorized: put/passall
ACTION:
Ensure that the correct level of authority has been set for this entity against
the required object, or ensure that the entity is a member of a privileged
group.
----- amqzfubn.c : 515 --------------------------------------------------------
14-03-2020 00:18:01 - Process(7752.172) User(MUSR_MQADMIN) Program(amqzlaa0.exe)
Host(DT-MachineName) Installation(Installation1)
VRMF(7.5.0.2) QMgr(QM1)
AMQ8077: Entity 'user@domainNname' has insufficient authority to access object
'DLQ'.
EXPLANATION:
The specified entity is not authorized to access the required object. The
following requested permissions are unauthorized: put/passall
ACTION:
Ensure that the correct level of authority has been set for this entity against
the required object, or ensure that the entity is a member of a privileged
group.
您从队列管理器 AMQERR01.LOG
提供的关键错误如下:
AMQ8077: Entity 'user@domainNname' has insufficient authority to access object
'ORANGE.LOCAL.QUEUE'.
EXPLANATION:
The specified entity is not authorized to access the required object. The
following requested permissions are unauthorized: put/passall
根据提供的错误,尝试访问回退队列的用户是 user@domainNname
。
从提供的所有信息看来,user@domainNname
只是缺少对 ORANGE.LOCAL.QUEUE
的权限,以下命令应添加所需权限:
SET AUTHREC PROFILE(ORANGE.LOCAL.QUEUE) OBJTYPE(QUEUE) PRINCIPAL('user@domainNname') AUTHADD(PUT,PASSALL)
请注意,JMS 中的回退队列处理将首先尝试使用指定的 BOQNAME
作为正在使用的队列,如果由于任何原因无法打开或放入此队列,例如权限错误或队列已满,它将尝试放入队列管理器的死信队列。这就是为什么您还会在日志中看到错误 insufficient authority to access object 'DLQ'
.
我有 DMLC 侦听器侦听来自 Websphere MQ 7.5.0.2 的消息。当有毒消息时,我希望在MQ中的重试次数到期后将其放入回退Q中。
我在MQ上配置了回退队列,阈值为3。
然而,当我在侦听器上抛出异常时实际发生的情况是,消息仍然被重新传递超过 3 次,并且消息每次都返回到同一个队列并且循环不断重复。 MQ中回退阈值增加,但消息永远不会进入回退队列。
我是不是遗漏了什么地方?如果我想将消息放入回退队列,我应该怎么做。 参考下面的官方文档,没有任何额外的配置。
Websphere Poison Message Handling
我需要做任何额外的配置吗?
队列详细信息
AMQ8409: Display Queue details. (This is the Source Queue)
QUEUE(Q3) TYPE(QLOCAL)
ACCTQ(QMGR) ALTDATE(2020-03-12)
ALTTIME(22.16.44) BOQNAME(ORANGE.LOCAL.QUEUE)
BOTHRESH(4) CLUSNL( )
CLUSTER( ) CLCHNAME( )
CLWLPRTY(0) CLWLRANK(0)
CLWLUSEQ(QMGR) CRDATE(2019-09-16)
CRTIME(15.22.49) CURDEPTH(2)
CUSTOM( ) DEFBIND(OPEN)
DEFPRTY(0) DEFPSIST(NO)
DEFPRESP(SYNC) DEFREADA(NO)
DEFSOPT(SHARED) DEFTYPE(PREDEFINED)
DESCR( ) DISTL(NO)
GET(ENABLED) HARDENBO
INITQ( ) IPPROCS(0)
MAXDEPTH(5000) MAXMSGL(4194304)
MONQ(QMGR) MSGDLVSQ(PRIORITY)
NOTRIGGER NPMCLASS(NORMAL)
OPPROCS(0) PROCESS( )
PUT(ENABLED) PROPCTL(COMPAT)
QDEPTHHI(80) QDEPTHLO(20)
QDPHIEV(DISABLED) QDPLOEV(DISABLED)
QDPMAXEV(ENABLED) QSVCIEV(NONE)
QSVCINT(999999999) RETINTVL(999999999)
SCOPE(QMGR) SHARE
STATQ(QMGR) TRIGDATA( )
TRIGDPTH(1) TRIGMPRI(0)
TRIGTYPE(FIRST) USAGE(NORMAL)
AMQ8409: Display Queue details. (This is the backout queue)
QUEUE(ORANGE.LOCAL.QUEUE) TYPE(QLOCAL)
ACCTQ(QMGR) ALTDATE(2020-03-12)
ALTTIME(21.27.17) BOQNAME( )
BOTHRESH(0) CLUSNL( )
CLUSTER( ) CLCHNAME( )
CLWLPRTY(0) CLWLRANK(0)
CLWLUSEQ(QMGR) CRDATE(2020-03-12)
CRTIME(21.27.17) CURDEPTH(0)
CUSTOM( ) DEFBIND(OPEN)
DEFPRTY(0) DEFPSIST(NO)
DEFPRESP(SYNC) DEFREADA(NO)
DEFSOPT(SHARED) DEFTYPE(PREDEFINED)
DESCR( ) DISTL(NO)
GET(ENABLED) HARDENBO
INITQ( ) IPPROCS(0)
MAXDEPTH(5000) MAXMSGL(4194304)
MONQ(QMGR) MSGDLVSQ(PRIORITY)
NOTRIGGER NPMCLASS(NORMAL)
OPPROCS(0) PROCESS( )
PUT(ENABLED) PROPCTL(COMPAT)
QDEPTHHI(80) QDEPTHLO(20)
QDPHIEV(DISABLED) QDPLOEV(DISABLED)
QDPMAXEV(ENABLED) QSVCIEV(NONE)
QSVCINT(999999999) RETINTVL(999999999)
SCOPE(QMGR) SHARE
STATQ(QMGR) TRIGDATA( )
----------------------------------------------------------------------------------
Queue Permissions
AMQ8864: Display authority record details.
PROFILE(Q3) ENTITY(useradmin@DT-MachineName)
ENTTYPE(PRINCIPAL) OBJTYPE(QUEUE)
AUTHLIST(BROWSE,CHG,CLR,DLT,DSP,GET,INQ,PUT,PASSALL,PASSID,SET,SETALL,SETID)
AMQ8864: Display authority record details.
PROFILE(Q3) ENTITY(mqm@DT-MachineName)
ENTTYPE(GROUP) OBJTYPE(QUEUE)
AUTHLIST(BROWSE,CHG,CLR,DLT,DSP,GET,INQ,PUT,PASSALL,PASSID,SET,SETALL,SETID)
AMQ8864: Display authority record details.
PROFILE(Q3) ENTITY(user@domainName)
ENTTYPE(PRINCIPAL) OBJTYPE(QUEUE)
AUTHLIST(BROWSE,CHG,CLR,DLT,DSP,GET,INQ,PUT,PASSALL,PASSID,SET,SETALL,SETID)
AMQ8864: Display authority record details.
PROFILE(Q3) ENTITY(user2@domainName)
ENTTYPE(PRINCIPAL) OBJTYPE(QUEUE)
AUTHLIST(BROWSE,CHG,CLR,DLT,DSP,GET,INQ,PUT,PASSALL,PASSID,SET,SETALL,SETID)
AMQ8864: Display authority record details.
PROFILE(ORANGE.LOCAL.QUEUE) ENTITY(useradmin@DT-MachineName)
ENTTYPE(PRINCIPAL) OBJTYPE(QUEUE)
AUTHLIST(BROWSE,CHG,CLR,DLT,DSP,GET,INQ,PUT,PASSALL,PASSID,SET,SETALL,SETID)
AMQ8864: Display authority record details.
PROFILE(ORANGE.LOCAL.QUEUE) ENTITY(mqm@DT-MachineName)
ENTTYPE(GROUP) OBJTYPE(QUEUE)
AUTHLIST(BROWSE,CHG,CLR,DLT,DSP,GET,INQ,PUT,PASSALL,PASSID,SET,SETALL,SETID)
-----------------------------------------------------------------------------
Queue Manager Permissions
AMQ8864: Display authority record details.
PROFILE(SELF) ENTITY(user@domainName)
ENTTYPE(PRINCIPAL) OBJTYPE(QMGR)
AUTHLIST(ALTUSR,CHG,CONNECT,DLT,DSP,INQ,SET,SETALL,SETID,SYSTEM)
AMQ8864: Display authority record details.
PROFILE(@CLASS) ENTITY(user@domainName)
ENTTYPE(PRINCIPAL) OBJTYPE(QMGR)
AUTHLIST(NONE)
-------------------------------------------------------------------------------
**The Following error is seen the AMQERR01.LOG**
14-03-2020 00:18:01 - Process(7752.172) User(MUSR_MQADMIN) Program(amqzlaa0.exe)
Host(DT-MachineName) Installation(Installation1)
VRMF(7.5.0.2) QMgr(QM1)
AMQ8077: Entity 'user@domainNname' has insufficient authority to access object
'ORANGE.LOCAL.QUEUE'.
EXPLANATION:
The specified entity is not authorized to access the required object. The
following requested permissions are unauthorized: put/passall
ACTION:
Ensure that the correct level of authority has been set for this entity against
the required object, or ensure that the entity is a member of a privileged
group.
----- amqzfubn.c : 515 --------------------------------------------------------
14-03-2020 00:18:01 - Process(7752.172) User(MUSR_MQADMIN) Program(amqzlaa0.exe)
Host(DT-MachineName) Installation(Installation1)
VRMF(7.5.0.2) QMgr(QM1)
AMQ8077: Entity 'user@domainNname' has insufficient authority to access object
'DLQ'.
EXPLANATION:
The specified entity is not authorized to access the required object. The
following requested permissions are unauthorized: put/passall
ACTION:
Ensure that the correct level of authority has been set for this entity against
the required object, or ensure that the entity is a member of a privileged
group.
您从队列管理器 AMQERR01.LOG
提供的关键错误如下:
AMQ8077: Entity 'user@domainNname' has insufficient authority to access object
'ORANGE.LOCAL.QUEUE'.
EXPLANATION:
The specified entity is not authorized to access the required object. The
following requested permissions are unauthorized: put/passall
根据提供的错误,尝试访问回退队列的用户是 user@domainNname
。
从提供的所有信息看来,user@domainNname
只是缺少对 ORANGE.LOCAL.QUEUE
的权限,以下命令应添加所需权限:
SET AUTHREC PROFILE(ORANGE.LOCAL.QUEUE) OBJTYPE(QUEUE) PRINCIPAL('user@domainNname') AUTHADD(PUT,PASSALL)
请注意,JMS 中的回退队列处理将首先尝试使用指定的 BOQNAME
作为正在使用的队列,如果由于任何原因无法打开或放入此队列,例如权限错误或队列已满,它将尝试放入队列管理器的死信队列。这就是为什么您还会在日志中看到错误 insufficient authority to access object 'DLQ'
.