Author |
Message
|
KramJ |
Posted: Tue Apr 25, 2006 3:36 am Post subject: SYSTEM.ADMIN.COMMAND.QUEUE |
|
|
Voyager
Joined: 09 Jan 2006 Posts: 80 Location: Atlanta
|
Is there any reason to have the SYSTEM.ADMIN.COMMAND.QUEUE persistent? |
|
Back to top |
|
 |
LuisFer |
Posted: Tue Apr 25, 2006 4:26 am Post subject: Re: SYSTEM.ADMIN.COMMAND.QUEUE |
|
|
 Partisan
Joined: 17 Aug 2002 Posts: 302
|
The concept of Persistence is for the Message , not for the Queue. |
|
Back to top |
|
 |
KramJ |
Posted: Tue Apr 25, 2006 4:35 am Post subject: |
|
|
Voyager
Joined: 09 Jan 2006 Posts: 80 Location: Atlanta
|
I know. Let me explain why I'm asking the question.
I have two queue managers that the SYSTEM.ADMIN.COMMAND.QUEUE is persistent on. This was set by a previously administrator long before I started working here, so I don't know their reason. I'm setting up MQ monitoring using NetIQ AppManager. When the queue manager attemps to put messages to NetIQ's reply queue, with the SYSTEM.ADMIN.COMMAND.QUEUE queue set to persistent, it tries to put a persistent reply message to a temporary dynamic queue, so the message ends up in the DEADQ. Setting SYSTEM.ADMIN.COMMAND.QUEUE to non-persistent fixes the problem, however I don't want to introduce a new issue, not knowing why it was initially set to persistent. |
|
Back to top |
|
 |
jefflowrey |
Posted: Tue Apr 25, 2006 4:37 am Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
In fact, if you do this, you may run into problems with the command server.
SYSTEM.ADMIN.COMMAND.QUEUE is used as a model queue by most programs that send and receive PCF messages. So if it is set to DEFPSIST(YES), and an application uses it as a model queue to create a temporary dynamic queue for replies, and then the command server does the right thing and sets PERSIST_AS_QDEF when opening the reply queue for output... you aren't going to get any replies. _________________ I am *not* the model of the modern major general.
Last edited by jefflowrey on Tue Apr 25, 2006 4:43 am; edited 1 time in total |
|
Back to top |
|
 |
KramJ |
Posted: Tue Apr 25, 2006 4:41 am Post subject: |
|
|
Voyager
Joined: 09 Jan 2006 Posts: 80 Location: Atlanta
|
That's what I thought, so I can't figure out why the previous admin has it set to DEFPSIST(YES). |
|
Back to top |
|
 |
jefflowrey |
Posted: Tue Apr 25, 2006 4:44 am Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
As an extra "security" measure? _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
KramJ |
Posted: Tue Apr 25, 2006 4:48 am Post subject: |
|
|
Voyager
Joined: 09 Jan 2006 Posts: 80 Location: Atlanta
|
Okay, I see, to ensure that programs aren't running PCF commands. Thanks. |
|
Back to top |
|
 |
jefflowrey |
Posted: Tue Apr 25, 2006 4:52 am Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
It's the only thing I can think of.
Most of us would just not run a command server in the first place. _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
PeterPotkay |
Posted: Tue Apr 25, 2006 7:28 am Post subject: |
|
|
 Poobah
Joined: 15 May 2001 Posts: 7722
|
jefflowrey wrote: |
SYSTEM.ADMIN.COMMAND.QUEUE is used as a model queue by most programs that send and receive PCF messages. So if it is set to DEFPSIST(YES), and an application uses it as a model queue to create a temporary dynamic queue for replies, and then the command server does the right thing and sets PERSIST_AS_QDEF when opening the reply queue for output... you aren't going to get any replies. |
SYSTEM.ADMIN.COMMAND.QUEUE is not a model queue, its a plain local queue. However, if the request messages are persistent, then the reply messages are as well, and it is up to the requesting app to create a PermDyn reply queue instead of a TempDyn reply queue. Because of that, I don't see it as an attempt for security, since it can so easily be circumvented. On the other hand, I see no reason why it would be set to persistent. Who knows, maybe that admin made EVERY queue persistent, so MQ would never "lose" a message.
http://publib.boulder.ibm.com/infocenter/wmqv6/v6r0/topic/com.ibm.mq.csqsat.doc/csq82f9.htm?resultof=%22%53%59%53%54%45%4d%2e%41%44%4d%49%4e%2e%43%4f%4d%4d%41%4e%44%2e%51%55%45%55%45%22%20
Quote: |
Commands are normally sent using nonpersistent messages so both the system command objects should have the DEFPSIST(NO) attribute so that applications using them (including the supplied applications like the utility program and the operations and control panels) get nonpersistent messages by default. If you have an application that uses persistent messages for commands, set the DEFTYPE(PERMDYN) attribute for the reply-to queue, because the reply messages to such commands are persistent. |
_________________ Peter Potkay
Keep Calm and MQ On |
|
Back to top |
|
 |
kevinf2349 |
Posted: Tue Apr 25, 2006 7:33 am Post subject: |
|
|
 Grand Master
Joined: 28 Feb 2003 Posts: 1311 Location: USA
|
Quote: |
Who knows, maybe that admin made EVERY queue persistent, so MQ would never "lose" a message.
|
That could be, I had a consulting company that once tried to tell me that "in production persisence was a given"
I argued and eventually won the day. It is often just laziness or lack of understanding the application that makes people think that persistence is a given. |
|
Back to top |
|
 |
jefflowrey |
Posted: Tue Apr 25, 2006 8:00 am Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
Peter -
I didn't say it *was* a model queue, I said it was *used* as a model queue. _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
HubertKleinmanns |
Posted: Tue Apr 25, 2006 8:04 am Post subject: |
|
|
 Shaman
Joined: 24 Feb 2004 Posts: 732 Location: Germany
|
kevinf2349 wrote: |
Quote: |
Who knows, maybe that admin made EVERY queue persistent, so MQ would never "lose" a message.
|
That could be, I had a consulting company that once tried to tell me that "in production persisence was a given"
I argued and eventually won the day. It is often just laziness or lack of understanding the application that makes people think that persistence is a given. |
But you cannot have persistent queues in WebSphere MQ. A queue is (nearly) always able, to hold both - persistent and non-persistent messages - and the application has to define this attribute during the PUT command. You never can be sure, that messages in queues with DEFPSIST(YES) are really persistent (in fact, as a developer I would never trust an administrator, that the q definitions are set correctly ).
Exceptions are temporary dynamic queues and some types of shared queues (CF-Structure version less than 3), which can only hold non-persistent messages.
So do not trust the attribute DEFPSIST! _________________ Regards
Hubert |
|
Back to top |
|
 |
kevinf2349 |
Posted: Tue Apr 25, 2006 10:54 am Post subject: |
|
|
 Grand Master
Joined: 28 Feb 2003 Posts: 1311 Location: USA
|
Quote: |
But you cannot have persistent queues in WebSphere MQ |
Yes I know, that is why I didn't mention the word 'queue' in my reply other than the quoted part.
 |
|
Back to top |
|
 |
wschutz |
Posted: Tue Apr 25, 2006 11:00 am Post subject: |
|
|
 Jedi Knight
Joined: 02 Jun 2005 Posts: 3316 Location: IBM (retired)
|
Quote: |
So do not trust the attribute DEFPSIST!
|
But the problem isn't TRUSTing it, the problem is understanding what it REALLY means..... _________________ -wayne |
|
Back to top |
|
 |
HubertKleinmanns |
Posted: Wed Apr 26, 2006 3:22 am Post subject: |
|
|
 Shaman
Joined: 24 Feb 2004 Posts: 732 Location: Germany
|
kevinf2349 and Wayne,
I think, you both know the meaning of my words .
But I do not hesitate, to point this out again and again ... _________________ Regards
Hubert |
|
Back to top |
|
 |
|