Websphere MQ 回退队列配置

问题描述 投票:0回答:1

我有 DMLC 侦听器侦听来自 Websphere MQ 7.5.0.2 的消息。当有毒消息时,我希望在MQ中的重试次数到期后将其放入回退Q中。

我在MQ上配置了回退队列,阈值为3.

然而,当我向侦听器抛出异常时实际发生的情况是,消息仍然被重新传递超过 3 次,并且消息每次都返回到同一个队列,并且循环不断重复。 MQ 中的回退阈值增加,但消息永远不会进入回退队列。

我是不是哪里遗漏了什么?如果我想把消息放入回退队列,我应该怎么做。 参考下面的官方文档,没有任何额外的配置。

Websphere 毒消息处理

我需要做任何额外的配置吗?

队列详情

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( )

队列权限

    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)

队列管理器权限

   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)

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. 
ibm-mq spring-jms
1个回答
3
投票

您从队列管理器的

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'
.

© www.soinside.com 2019 - 2024. All rights reserved.