Author |
Message
|
vivekkooks |
Posted: Sun May 23, 2004 9:23 pm Post subject: MQ Series disk space error /var/mqm is full |
|
|
 Voyager
Joined: 11 Jun 2003 Posts: 91
|
Hello,
I am using MQSeries 5.3 on Linux. I am using mq series persistent message mechanism.
I have partitioned /var and allocated 2GB of disk space.
But after some duration, the space allocated to /var is getting full and I am getting following errors:
AMQ7463: The log for queue manager MY.QUEUE.MANAGER is full
AMQ7469: Transactions rolled back to release log space.
AMQ9409: Repository manager ended abnormally.
AMQ9999: Channel program ended abnormally
AMQ9422: Repository manager error, RC=1077960969
EXPLANATION:
An internal error has occurred.
ACTION:
Collect the items listed in the 'Problem determination' section of the System
Administration manual and contact your IBM support center.
As the errors show, the /var/mqm directory is full.
Can anybody help me in this regard.
Also can I make a symbolic link to /var/mqm in /usr where I have ample of disk space?
Or can allocating huge disk space (20GB)to /var is a good practise. |
|
Back to top |
|
 |
vivekkooks |
Posted: Mon May 24, 2004 12:20 am Post subject: |
|
|
 Voyager
Joined: 11 Jun 2003 Posts: 91
|
does anybody has any clues regarding this error?
also, what is the best practice for creating disk partitions?
Is it recommended to create seperate partition for /var/mqm/log. |
|
Back to top |
|
 |
leongor |
Posted: Mon May 24, 2004 1:39 am Post subject: |
|
|
 Master
Joined: 13 May 2002 Posts: 264 Location: Israel
|
Quote: |
As the errors show, the /var/mqm directory is full.
Can anybody help me in this regard.
Also can I make a symbolic link to /var/mqm in /usr where I have ample of disk space?
Or can allocating huge disk space (20GB)to /var is a good practise.
|
1. Not exactly. What you see in error log, that MQ logs are full. If you use linear logs then it depends only on file system size,
but with circular logs you have only maximum spase as defined primary + secondary logs.
2. No, symbolic link to /var/mqm is not suported
3. Usually you want to set different file systems for /var/mqm and /var/mqm/log _________________ Regards.
Leonid.
IBM Certified MQSeries Specialist. |
|
Back to top |
|
 |
vivekkooks |
Posted: Mon May 24, 2004 2:07 am Post subject: |
|
|
 Voyager
Joined: 11 Jun 2003 Posts: 91
|
I am using persistent message mechanism. i.e. messages are always logged.
Does these messages are logged in /var/mqm/log/<qmgrname>/active directory?
I am a bit confused with Primary logs and secondary logs.
Which type of log is best recommended for persistent mechanism?(Circular or Linear)
In my case, I am using circular logs(the default).
Also, when the messages are processed from the queue and the message transaction is committed, does MQ Series deletes the messages which are being logged? |
|
Back to top |
|
 |
jefflowrey |
Posted: Mon May 24, 2004 2:41 am Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
Circular vs. Linear logging only affects backup & recovery (and the amount of disk space consumed), not whether or not you can use Persistant messages.
Primary log files are used exclusively. UNLESS you have a transaction of some sort that requires more logging than can fit in the primary log files. Then, MQSeries will use secondary log files - until the transaction is complete.
If you are getting an error about your logs being full, then there are two things that are likely causing it. - Your applications are creating big or long-running transactions, and filling up your logs
- Your channels are passing lots of messages through in a single batch, and filling up your logs
With Circular logging, one other thing could be simply that you have too many primary and secondary logs allocated for the size ofyour disk. You should ensure that you have space equal to the total number of log files times the page size.
As leongor said, it is recommended usually that /var/mqm and /var/mqm/log are on different partitions. /var/mqm/log can be a symlink, I believe. There is a discussion of these matters either in the System Administration guide, or in the Quick Beginnings guide for your platform. _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
vivekkooks |
Posted: Mon May 24, 2004 3:07 am Post subject: |
|
|
 Voyager
Joined: 11 Jun 2003 Posts: 91
|
This is the portion of mqs.ini file(All are default):
LogDefaults:
LogPrimaryFiles=3
LogSecondaryFiles=2
LogFilePages=1024
LogType=CIRCULAR
LogBufferPages=0
LogDefaultPath=/var/mqm/log
On my file system, I have allocated 2GB storage to /var.
And when I got the mentioned errors, the disk space utilized was 1.9 GB.
Because of this, I am unable to start the queue manager.
In my application, I have message transaction for every message(i.e. mq commit or backout).
The Queue depth is 10000 and max message size is 2MB.
But I can see a very high message traffic in my application.
So, what would be a suitable no. of Primary and Secondary log files?
i.e. should I increase the no. of primary and secondary log files?
I think, creating a symbolic link to /var/mqm/log will be a good way.
But this problem may occur with my default settings...
What you suggesst... |
|
Back to top |
|
 |
jefflowrey |
Posted: Mon May 24, 2004 4:04 am Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
You should set the primary log file space to be big enough to hold an average volume of traffic - at least, the average volume you have in transactions.
You should set the secondary log file space to be big enough to hold the maximum expected traffic on your system.
You can control both these traffic numbers by - ensuring that all your applications do not create large or long-running units of work (commit after every message, if possible)
- manage your channel parameters including the batch size.
_________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
vivekkooks |
Posted: Mon May 24, 2004 4:40 am Post subject: |
|
|
 Voyager
Joined: 11 Jun 2003 Posts: 91
|
On unix systems, every log file page is of 4kb size.
Hence the total size of pages(1024 default) is 4MB.
As I am using the default primary pages(3) the total size becomes 4*3 i.e. 12 MB.
My unit of work is for every message. and the MAX message size is 2 MB(application is restricting the message size to 2MB. The default is 4MB though).
And these are my channel details:
AMQ8414: Display Channel details.
CHANNEL(TESTQMCHANNEL) CHLTYPE(SVRCONN)
TRPTYPE(TCP) DESCR( )
SCYEXIT( ) MAXMSGL(4194304)
SCYDATA( ) HBINT(300)
SSLCIPH( ) SSLCAUTH(REQUIRED)
KAINT(AUTO) MCAUSER( )
ALTDATE(2004-05-24) ALTTIME(15.03.10)
SSLPEER()
SENDEXIT( )
RCVEXIT( )
SENDDATA( )
RCVDATA( )
So, is it true that the default log settings are good enough in this case? |
|
Back to top |
|
 |
jefflowrey |
Posted: Mon May 24, 2004 4:53 am Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
vivekkoos wrote: |
As I am using the default primary pages(3) the total size becomes 4*3 i.e. 12 MB. |
Plus two secondary log files. 4*6 = 24MB.
That means you can put at most 12 messages (assuming all messages are your max size) in a single unit of work. If your application is sending one message per unit of work, you will never run out of transaction space ... if you only have one application making units of work! If you have 13 applications...
Also, if you have one application PUTTING messages, and another application GETTING messages - both in transactions...
And then there's the issue of channels. You posted details for your client channel.. but that's not what I meant. Is your queue manager talking to any other queue managers - through clustering or sender/receiver channels?
I believe the default batch size for channels is something like 50. So if you ever have 13 messages going out through a sender channel... Or if you have 10 messages going out through a channel, and two applications putting and getting through units of work...
It's all math. It's all relatively simple math. I'm not gonna do it for you, though. _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
vivekkooks |
Posted: Mon May 24, 2004 6:28 am Post subject: |
|
|
 Voyager
Joined: 11 Jun 2003 Posts: 91
|
Thanks right!!!
Its Maths. Simple it is.
Actually what I wanted to show you is that The primary as well as secondary log files are large enough to serve the unit of work in my case.
A good point you stated is that I need to consider all the applications PUTting and GETting the messages.
And I have a single Queue Manager.
Thanks for your prompt replies and timely help(thats what I wanted, not you giving me the solution ) |
|
Back to top |
|
 |
tkane |
Posted: Mon May 24, 2004 7:57 am Post subject: |
|
|
 Voyager
Joined: 23 Dec 2002 Posts: 82 Location: Kansas City
|
You posted your mqs.ini earlier.
What's in your qm.ini for the specific queue manager?
That's what's actually controlling your queue manager.
Tom |
|
Back to top |
|
 |
vivekkooks |
Posted: Mon May 24, 2004 9:18 pm Post subject: |
|
|
 Voyager
Joined: 11 Jun 2003 Posts: 91
|
Here are the contents of qm.ini.
(qm.ini)
Log:
LogPrimaryFiles=3
LogSecondaryFiles=2
LogFilePages=1024
LogType=CIRCULAR
LogBufferPages=0
LogPath=/var/mqm/log/TEST!QUEUE!MANAGER/
LogWriteIntegrity=TripleWrite
Also, the largest file in /var/mqm is '/var/mqm/qmgrs/TEST!QUEUE!MANAGER/queues/TEST_MSG_QUEUE/q'
As we know,Each queue has a directory containing a single file called ‘q’.
This file is occupying 90% of the disk space.
Does the size of this file depends on no. of messages it has currently?
Any help? |
|
Back to top |
|
 |
bower5932 |
Posted: Tue May 25, 2004 5:24 am Post subject: |
|
|
 Jedi Knight
Joined: 27 Aug 2001 Posts: 3023 Location: Dallas, TX, USA
|
Quote: |
Does the size of this file depends on no. of messages it has currently? |
The size of the file will grow as messages are put on it. However, it doesn't shrink instantly when messages are removed. |
|
Back to top |
|
 |
bduncan |
Posted: Tue May 25, 2004 9:47 am Post subject: |
|
|
Padawan
Joined: 11 Apr 2001 Posts: 1554 Location: Silicon Valley
|
One subtle distinction to make is that when messages expire on the queue they do NOT get removed from the file system. That doesn't happen until an application attempts to browse or get the expired message.
So you could potentially fill up your /var/mqm partition with expired messages. _________________ Brandon Duncan
IBM Certified MQSeries Specialist
MQSeries.net forum moderator |
|
Back to top |
|
 |
vivekkooks |
Posted: Wed May 26, 2004 12:23 am Post subject: |
|
|
 Voyager
Joined: 11 Jun 2003 Posts: 91
|
But how can the application attempt to access an expired message?
It tries to get the 'next' message...
Can you please elaborate more? |
|
Back to top |
|
 |
|