ASG
IBM
Zystems
Cressida
Icon
Netflexity
 
  MQSeries.net
Search  Search       Tech Exchange      Education      Certifications      Library      Info Center      SupportPacs      LinkedIn  Search  Search                                                                   FAQ  FAQ   Usergroups  Usergroups
 
Register  ::  Log in Log in to check your private messages
 
RSS Feed - WebSphere MQ Support RSS Feed - Message Broker Support

MQSeries.net Forum Index » General IBM MQ Support » AMQ6207 and nonpersistent messages

Post new topic  Reply to topic
 AMQ6207 and nonpersistent messages « View previous topic :: View next topic » 
Author Message
jdye
PostPosted: Fri Jan 26, 2007 7:03 pm    Post subject: AMQ6207 and nonpersistent messages Reply with quote

Apprentice

Joined: 14 Jun 2002
Posts: 31
Location: Kansas City

While one of our vendor applications was reading and writing messages, we received error "AMQ6207: Failed to attach shared memory segment as Segment table is Full." After researching this error, I suggested that they need to have their application set the environment variable to EXTSHM=ON per MQ documentation.

The issue is that the users believe that the messages that were being processed during this issue were lost (by MQ of course ). These messages were nonpersistent. Since nonpersistant messages live in memory, and not knowing exactly how AIX manages memory, I figured that it was a possibility. I also figured it was possible that the application read the message destructively, was impacted by the memory issue while attempting to process the message and put the reply message, and didn't rollback the message original message.

I know MQ know claims assured delivery when the message is persistent, and that nonpersistent message will be lost if the queue manager fails or is brought down, and also if you are using 'nonpersistent message speed fast' on a channel and the channel fails, but I wasn't aware of any other situations where a nonpersistent message would be lost.

I hate to see MQ take the blame on a problem if it wasn't at fault, but if that is circomstance that a nonpersistent message could be lost, it would be good to know.
Any ideas?
Back to top
View user's profile Send private message
jefflowrey
PostPosted: Sat Jan 27, 2007 5:43 am    Post subject: Reply with quote

Grand Poobah

Joined: 16 Oct 2002
Posts: 19981

First off, if the client really can't stand to lose the message, then it should be persistent. That is, if they've chosen to make their messages non-persistent, they've accepted that they can get lost.

Secondly... eliminate application problems first. It's entirely possible that the error occuring with shm was causing the vendor application to fail to deal with the messages properly, in some manner or another, and also failing to report on what it was doing properly. You've said this is possible, and it certainly is possible.

Third. With WebSphere MQ Version 6, the setting of the EXTSHM variable has no effect on the shared memory used by WebSphere MQ.
_________________
I am *not* the model of the modern major general.
Back to top
View user's profile Send private message
jdye
PostPosted: Mon Jan 29, 2007 9:00 am    Post subject: Reply with quote

Apprentice

Joined: 14 Jun 2002
Posts: 31
Location: Kansas City

Thanks for your reply.

First, the client chose to use nonpersistent messages for performance reasons understanding that under a few uncommon circumstances they could lose messages. They can recover them, it's just a pain for them, and thinking that MQ lost the messages under circumstances that they where not told about (queue manager didn't go down and there was not channel failure), they were concerned.

Secondly, as it turns out, they now finally realize that MQ didn't lose their message, it was their application that failed to process the message once they retrieved it. In this case, it wouldn't have made a difference if the message was persistence or not, the problem was an application issue after the fact.

Thirdly, this is a 5.3 queue manager. From the documentation in the AIX quick beginning manual,

"With WebSphere MQ for AIX, V5.3, queue managers use the AIX extension EXTSHM, which allows more than 10 segments to be attached by a single process. This is enabled by exporting the environment variable EXTSHM=ON in the environment before a process is started (the variable must be in upper case).
To take full advantage of this facility, set the environment variable EXTSHM=ON in the environment of all WebSphere MQ applications before they are started. All WebSphere MQ queue manager processes will set this variable for the lifetime of their process, if it is not already set when the queue manager is started. "

The way I read it is that the variable should be in both the queue manager process and the application, but I have read a post by a user indicating that in their testing, it didn't seem to matter whether or not it was set in the environment for MQ or not, but it had to be set in the environment of the application. Does this sound correct?
Back to top
View user's profile Send private message
jefflowrey
PostPosted: Mon Jan 29, 2007 11:38 am    Post subject: Reply with quote

Grand Poobah

Joined: 16 Oct 2002
Posts: 19981

I'd make sure it was set in both environments - just so I could sleep at night.

You otherwise didn't indicate v5 or v6, so I went with v6.

You should tell your client to start planning their migration to v6. V5.3 goes out of support in the next year or so.
_________________
I am *not* the model of the modern major general.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic  Reply to topic Page 1 of 1

MQSeries.net Forum Index » General IBM MQ Support » AMQ6207 and nonpersistent messages
Jump to:  



You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
Protected by Anti-Spam ACP
 
 


Theme by Dustin Baccetti
Powered by phpBB © 2001, 2002 phpBB Group

Copyright © MQSeries.net. All rights reserved.