user1284849
user1284849

Reputation: 83

WebSphere MQ Backout Threshold and Backout Name are not working

We have set up BOTHRESH(5), BOQNAME(USER.ERR) in WebSphere MQ v7.0.1.9 queue manager.

When TX is rolled back by the MDB in a container managed TX in WebSphere application server v7, the messages are getting placed in DLQ instead of placing in original queue.

I checked the logs which stated that TX got rolled back successfully .

Can some one help me?

Upvotes: 2

Views: 4920

Answers (1)

T.Rob
T.Rob

Reputation: 31832

...the message are getting placed in DLQ instead of placing in original queue.

Setting BOQNAME and BOTHRESH results in the QMgr attempting to put the message in something other than the original queue. Once BOTHRESH is exceeded, the QMgr will first try to put the message into the queue named by BOQNAME, then into the DLQ if putting to BOQNAME is not possible. Only if both of these fail does the QMgr put the message back on the original queue or discard it if the message is non-persistent.

Some reasons that backing out to the queue named in BOQNAME or to the DLQ fail are:

  1. The target queue does not exist.
  2. The target queue is full.
  3. The message size exceeds the target queue's MAXMSGL attribute.
  4. The user is not authorized to put messages onto the target queue.
  5. The target queue is of the wrong type (i.e. XMitQ or model queue).
  6. When putting to the DLQ, the QMgr's DEADQ attribute is empty.
  7. BOTHRESH is set but BOQNAME is not. In this case, the DLQ is the only queue tried.

Upvotes: 2

Related Questions