IBM Support

The Q Capture program fails with ASN0575E and Websphere MQ error "2003".

Question & Answer


Question

The Q Capture program fails with ASN0575E and Websphere MQ error "2003". What does it mean and how can I recover?

Cause

The rollback might be caused by one of two situations:
1. There is a large transaction sent to WebSphere MQ as a large message, and
message size is not large enough to hold it. WebSphere MQ has a default message size value of 4
megabytes.

2. There is insufficient log space to record the transaction in the WebSphere MQ logs.

Answer

The WebSphere MQ error "2003" means that a unit of work (or transaction) has been rolled back.

This example shows errors that you might find in Q Capture log file:
===
2006-03-27-18.59.17.958133 <sendQueue::putTransMsg> ASN0575E "Q
Capture" : "ASN" : "WorkerThread" : The program encountered a WebSphere
MQ error "2003" while issuing the WebSphere MQ command "MQPUT" on queue
"DATAQ".
2006-03-27-18.59.17.958281 <sendQueue::rowBufferTooSmall> ASN0589I "Q
Capture" : "ASN" : "WorkerThread" The program received an unexpected
return code "503" from routine "putTransMsg".
2006-03-27-18.59.17.962689 <subMgr::queueInError> ASN7015E "Q Capture"
: "ASN" : "WorkerThread" : The program detected an unrecoverable
WebSphere MQ error for send queue "DATAQ" of publishing or
replication queue map "QMAP1". The error action specified for the
queue map is "S".
2006-03-27-18.59.17.962857 <sendQueue::rowBufferTooSmall> ASN0589I "Q
Capture" : "ASN" : "WorkerThread" The program received an unexpected
return code "6030" from routine "queueInError".
2006-03-27-18.59.17.962892 <queueSub::addDecodedRow> ASN0589I "Q
Capture" : "ASN" : "WorkerThread" The program received an unexpected
return code "6030" from routine "rowBufferTooSmall".
2006-03-27-18.59.17.962925 <masterSub::publishRow> ASN0589I "Q Capture"
: "ASN" : "WorkerThread" The program received an unexpected return code
"6030" from routine "addDecodedRow".
2006-03-27-18.59.17.962959 <subMgr::publishTrans> ASN0589I "Q Capture"
: "ASN" : "WorkerThread" The program received an unexpected return code
"6030" from routine "publishRow".
2006-03-27-18.59.17.963075 <asnqwk> ASN0589I "Q Capture" : "ASN" :
"WorkerThread" The program received an unexpected return code "6030"
from routine "subMgr::publishTrans".
2006-03-27-18.59.17.963128 <asnqwk> ASN7109I "Q Capture" : "ASN" :
"WorkerThread" : At program termination, the highest log sequence
number of a successfully processed transaction is
"4429:7C3B:0000:0001:0000" and the lowest log sequence number of a
transaction still to be committed is "0000:0000:000D:6460:CB08".
2006-03-27-18.59.19.764055 <asnThread::stop> ASN0590I "Q Capture" :
"ASN" : "Initial" The thread "Initial" received return code "6030" from
the exiting thread "WorkerThread".
2006-03-27-18.59.21.765778 <asnThread::stop> ASN0590I "Q Capture" :
"ASN" : "Initial" The thread "Initial" received return code "2001" from
the exiting thread "AdminThread".
2006-03-27-18.59.21.765895 <asnThread::stop> ASN0590I "Q Capture" :
"ASN" : "Initial" The thread "Initial" received return code "2011" from
the exiting thread "PruneThread".
2006-03-27-18.59.21.776175 <Asnenv:delEnvIpcQRcvHdl> ASN0595I "Q
Capture" : "ASN" : "Initial" The program removed an IPC queue with keys
"(0x300000a5)".
2006-03-27-18.59.21.776280 <asnThread::stop> ASN0590I "Q Capture" :
"ASN" : "Initial" The thread "Initial" received return code "0" from the
exiting thread "HoldLThread".
2006-03-27-18.59.21.776387 <erWhatSignal> ASN0591I "Q Capture" : "ASN"
: "HoldLThread" The thread "HoldLThread" received "Handled" signal
"SIGUSR2".
2006-03-27-18.59.22.777395 <asnqcap::main> ASN0573I "Q Capture" : "ASN"
: "Initial" : The program was stopped.
====

The first suggestion is to commit more frequently to reduce the size of the database transaction.
If this is not possible, then determine the largest expected transaction size and use either or both of these suggestions:

1. If you are using CIRCULAR logging, increase the LogPrimaryFiles or LogSecondaryFiles parameters so that the largest transaction can fit. These parameters are in the QM.INI file on UNIX. By default, QM.INI is found in /var/mqm/qmgrs/<qmgrname>/ (where qmgrname is the name of the queue manager).

On Windows, the values are located in the Windows registry. For instance, they are under HKEY_LOCAL_MACHINE-> SOFTWARE-> IBM -> MQSeries -> CurrentVersion -> Configuration -> LogDefaults.

If you don't know how many logs are needed or transactions don't normally get this large, then increase LogSecondaryFiles first so space will only be allocated as needed and not preallocated as will be the case with LogPrimaryFiles.

Queue manager will need to be restarted. If increase LogFilePages, then queue manager needs to be recreated.

You will also need to be sure that enough space is available on filesystem to handle additional logs. total log space = LogFilePagesx4KBx(primary + secondary).

2. Increase the size of MAXMSGL (Maximum Message Length) parameter for the queue manager, local queues, and channels.

For example, run the following commands by using runmqsc:
ALTER QMGR MAXMSGL(100000000)
ALTER QLOCAL ('TGT_QM') MAXMSGL(100000000)
ALTER CHANNEL ('TGTQM.TO.SRCQM') CHLTYPE(SDR) MAXMSGL(100000000)
ALTER CHANNEL ('TGTQM.TO.SRCQM') CHLTYPE(RCVR) MAXMSGL(100000000)

The MAXMSGL parameter is a limit and does not use any additional resources.

[{"Product":{"code":"SSDP5R","label":"InfoSphere Replication Server"},"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Component":"--","Platform":[{"code":"PF002","label":"AIX"},{"code":"PF010","label":"HP-UX"},{"code":"PF016","label":"Linux"},{"code":"PF027","label":"Solaris"},{"code":"PF033","label":"Windows"}],"Version":"8.2;9.1;9.5;9.7","Edition":"All Editions","Line of Business":{"code":"LOB10","label":"Data and AI"}}]

Historical Number

PMR 38803;L6Q and PMR 94312;033;724

Document Information

Modified date:
16 June 2018

UID

swg21269846