Конфигурация очереди возврата Websphere MQ - PullRequest
1 голос
/ 13 марта 2020

У меня есть прослушиватель DML C, который прослушивает сообщения из Websphere MQ 7.5.0.2. Когда есть подозрительное сообщение, я должен sh поместить его в резерв Q после истечения счетчика повторов в MQ.

Я настроил очередь возврата в MQ с пороговым значением значение в 3.

Однако, что на самом деле происходит, когда я выкидываю исключение на слушателя, сообщение все еще доставляется более 3 раз, и сообщение возвращается в одну и ту же очередь каждый раз, когда цикл повторяется непрерывно. Порог отклонения увеличивается в MQ, но никогда сообщение никогда не отправляется в очередь отклонения.

Я что-то пропустил? Что мне делать, если я хочу, чтобы сообщение было помещено в ответ? вне очереди Ссылаясь на официальные документы ниже, для этого нет никаких дополнительных настроек.

Обработка сообщений от Websphere Poison

Есть ли какие-либо дополнительные конфигурации, которые мне нужно сделать?

Детали очереди

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. 

1 Ответ

2 голосов
/ 13 марта 2020

Ошибка ключа, которую вы указали в 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'.

...