MQRC 2056 - MQRC_Q_SPACE_NOT_AVAILABLE

When a message cannot be sent to the WebSphere MQ queue with MQRC 2056 MQRC_Q_SPACE_NOT_AVAILABLE, it goes into the dead letter queue. This means that the initial disk space that we have allocated for use in the queues is 100%. Say the / var / mqm file system has ample free queue storage. Even we have a dead letter queue store also in the same / var / mqm. If we already get MQRC 2056 - MQRC_Q_SPACE_NOT_AVAILABLE, then how is it possible that the message will go into the dead letter queue when its disk space is already full?

+4
source share
1 answer

In your case, MQRC_Q_SPACE_NOT_AVAILABLE really reflects the total amount of space in the disk partition, but this is not the case in all cases. For example, with older file systems, the largest file size can be 2 GB, although this section can contain up to 1 TB. Therefore, if a single queue file reaches 2 GB, QMgr may still have enough space in the partition available to request a DLQ message. Although newer file systems have limited the 2 GB file limit, WebSphere MQ still supports many file systems that have a 2 GB file limit. On platforms, this restriction is absent (or in any case, when the entire section is exhausted, regardless of the platform), the behavior is not harmful. On platforms where the request can be successful, the behavior you observe is appropriate and even desirable.

Thus, there is a difference between the exhaustive space for a single queue file and the exhaustion of the entire file space in a section. WebSphere MQ can query the file system aspects to determine in detail which case caused the error, but that would add complexity to the code. A simple and quick attempt to execute a request when the operating system returns an error outside the space. If the partition has free space, the query is executed. If not, then the application is no worse than it was before the attempted repetition.

+1
source

Source: https://habr.com/ru/post/1343047/


All Articles