Author |
Message
|
wmbwmq |
Posted: Mon Jul 22, 2013 6:27 am Post subject: MO72 help... |
|
|
 Acolyte
Joined: 18 Jul 2011 Posts: 66
|
I am seeing wrongoutput/errors while using MO72. Can someone pls help me ...I am sure I must be missing something here...
MQ server version is V7014. I am connecting as client via MQSERVER...
1. Wrong output...
$ ./mqsc -l -C "dis chl(*) conname where(chltype eq sdr)" | grep 2222
CONNAME(XXABCXX(222))
CONNAME(XXDEFXX(2222))
$ ./mqsc -l -C "dis chl(*) conname where(conname LK *2222*)"
Connected to Queue Manager 'XXXXXXXX'
dis chl(*) conname where(conname LK *2222*)
AMQ8147: WebSphere MQ object * not found.
MQSC Ended
2. Also I get an error when i try to use logical OR...
$ ./mqsc -l -C "DIS CHL(*) WHERE(HBINT GT 200 AND CONNAME LK 2222)"
Connected to Queue Manager 'XXXXXXXX'
DIS CHL(*) WHERE(HBINT GT 200 AND CONNAME LK 2222)
AMQ8569: Error in filter specification
DIS
CHL(*) WHERE(HBINT GT 200 AND
AMQ8427: Valid syntax for the MQSC command:
DISPLAY display_cmd
WHERE(filter_keyword operator filter_value)
operator := [ LT | GT | EQ | NE | LE | GE | CT | EX | LK | NL | CTG | EXG ]
MQSC Ended |
|
Back to top |
|
 |
exerk |
Posted: Mon Jul 22, 2013 6:38 am Post subject: |
|
|
 Jedi Council
Joined: 02 Nov 2006 Posts: 6339
|
You cannot use a wildcard at the beginning of the object name, e.g. 222* is OK but *222 is not, and the WHERE filter condition is in three parts: filter-keyword, operator, and filter-value. The Info Centre contains more detailed information for the DISPLAY command specific to each object type. _________________ It's puzzling, I don't think I've ever seen anything quite like this before...and it's hard to soar like an eagle when you're surrounded by turkeys. |
|
Back to top |
|
 |
wmbwmq |
Posted: Mon Jul 22, 2013 7:16 am Post subject: |
|
|
 Acolyte
Joined: 18 Jul 2011 Posts: 66
|
this is using mqsc(MO71) not runmqsc
The documentation has an example with *xxx*
"DIS CHL(*) WHERE(CONNAME LK *1414*)
Will display any channels which have th
e string ‘1414’ in the connection name " |
|
Back to top |
|
 |
exerk |
Posted: Mon Jul 22, 2013 7:23 am Post subject: |
|
|
 Jedi Council
Joined: 02 Nov 2006 Posts: 6339
|
wmbwmq wrote: |
this is using mqsc(MO71) not runmqsc
The documentation has an example with *xxx*
"DIS CHL(*) WHERE(CONNAME LK *1414*)
Will display any channels which have th
e string ‘1414’ in the connection name " |
I stand corrected Have you tried quoting, e.g. '*2222*' etc.? _________________ It's puzzling, I don't think I've ever seen anything quite like this before...and it's hard to soar like an eagle when you're surrounded by turkeys. |
|
Back to top |
|
 |
wmbwmq |
Posted: Mon Jul 22, 2013 7:36 am Post subject: |
|
|
 Acolyte
Joined: 18 Jul 2011 Posts: 66
|
yes, i already tried all types of quotes, escape quotes etc
no luck |
|
Back to top |
|
 |
exerk |
Posted: Mon Jul 22, 2013 7:41 am Post subject: |
|
|
 Jedi Council
Joined: 02 Nov 2006 Posts: 6339
|
Maybe the originator of the SupportPac may see this thread and clarify where things are going wrong, but perhaps you could head over to http://www.mqgem.com/ and see whether there's something there that might help you. _________________ It's puzzling, I don't think I've ever seen anything quite like this before...and it's hard to soar like an eagle when you're surrounded by turkeys. |
|
Back to top |
|
 |
fjb_saper |
Posted: Mon Jul 22, 2013 12:48 pm Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
You will find an mqsc (mo72) on steroids at www.mqgem.com
It should do most of what you're looking for. You could contact Paul and ask for a trial...
Have fun  _________________ MQ & Broker admin |
|
Back to top |
|
 |
wmbwmq |
Posted: Mon Jul 22, 2013 1:35 pm Post subject: |
|
|
 Acolyte
Joined: 18 Jul 2011 Posts: 66
|
I tried mqscx but still no luck
mike:$ ./mqscx -m XXXXXX -C "dis chl(*) where(CONNAME LK *2222*)" -d "CHANNEL(XXXXXXXXXXXX) CONNAME(xxxxxxxx(xxxx))"
MQSCX Extended MQSC Program - Version 7.5.0
No MQGem Licence file found.
Running as Trial User
Connected to 'XXXXXX'
dis chl(*) where(CONNAME LK *2222*)
AMQ8147: WebSphere MQ object * not found.
Disconnected from 'XXXXXX'
MQSC Command summary - Issued: 1 Success: 0 Fail: 1
mike:$
As per the documentation, the command I am trying should work in MO72 itself. Clearly I must be missing something in the command/environment... |
|
Back to top |
|
 |
fjb_saper |
Posted: Mon Jul 22, 2013 7:39 pm Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
wmbwmq wrote: |
I tried mqscx but still no luck
mike:$ ./mqscx -m XXXXXX -C "dis chl(*) where(CONNAME LK *2222*)" -d "CHANNEL(XXXXXXXXXXXX) CONNAME(xxxxxxxx(xxxx))"
MQSCX Extended MQSC Program - Version 7.5.0
No MQGem Licence file found.
Running as Trial User
Connected to 'XXXXXX'
dis chl(*) where(CONNAME LK *2222*)
AMQ8147: WebSphere MQ object * not found.
Disconnected from 'XXXXXX'
MQSC Command summary - Issued: 1 Success: 0 Fail: 1
mike:$
As per the documentation, the command I am trying should work in MO72 itself. Clearly I must be missing something in the command/environment... |
Like you have been told, standard MO72 does not allow for a wildcard as the first character.
You need to try out the extended capability of MQSCX and the syntax you displayed does not do that. Read the manual that comes with it, understand the extended syntax capabilities and try again.
Have fun  _________________ MQ & Broker admin |
|
Back to top |
|
 |
wmbwmq |
Posted: Tue Jul 23, 2013 5:25 am Post subject: |
|
|
 Acolyte
Joined: 18 Jul 2011 Posts: 66
|
safer,
not sure where you got me telling wildcard as a first character is not supported?
here is the documentation....(pasting it again in the same thread)...
URL: ftp://public.dhe.ibm.com/software/integration/support/supportpacs/individual/mo72.pdf
Page No : 7
Quote: |
Where Clause
WebSphere MQ Version 6 introduced the WHERE clause on DISPLAY commands. It is now possible
to display objects filtered by something other
than their name. The WHERE
clause is supported by
the program regardless of the version of MQ
which actually installed. So, for example:
¾
DIS CHL(*) WHERE(HBINT GT 300)
Will display any channels with a heartbeat of greater than 300 seconds
¾
DIS CHL(*) WHERE(CONNAME LK *1414*)
Will display any channels which have th
e string ‘1414’ in the connection name
The WHERE clause has been extended in three ways. |
|
|
Back to top |
|
 |
fjb_saper |
Posted: Tue Jul 23, 2013 5:47 am Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
Does it matter what the documentation says if your example clearly shows it does not work?
You did try "where ( conname lk '*2222*' )" right? (note single quotes)
Have fun  _________________ MQ & Broker admin |
|
Back to top |
|
 |
PaulClarke |
Posted: Thu Jul 25, 2013 1:37 am Post subject: |
|
|
 Grand Master
Joined: 17 Nov 2005 Posts: 1002 Location: New Zealand
|
My apologies about the MO72 documentation, that looks like a mistake. MO72 is fairly simplistic it supports only WHERE clauses which are supported by the Command Server itself. At one time during MQ development the WHERE LK operator was indeed going to support wildscards at any point in the string. However, I'm afraid it only supports wildcards at the end of the string. I would offer to change the MO72 documentation but I'm afraid that IBM has still not allowed me to modify my programs.
However, you are in luck, as fjb_saper has already mentioned, my new company MQGem's first product does a lot of what MO72 can do and a whole lot more.
MQSCX has an =WHERE() clause as well as simple WHERE() clause. The =WHERE clause is much more powerful and allows you to do what you are trying. So change you command to.....
./mqscx -m XXXXXX -C "dis chl(*) =where(CONNAME LK '*2222*')" -d "CHANNEL(XXXXXXXXXXXX) CONNAME(xxxxxxxx(xxxx))"
(Note the addition of the = sign before the WHERE)
Hope this helps,
Paul. _________________ Paul Clarke
MQGem Software
www.mqgem.com |
|
Back to top |
|
 |
PaulClarke |
Posted: Thu Jul 25, 2013 1:45 am Post subject: |
|
|
 Grand Master
Joined: 17 Nov 2005 Posts: 1002 Location: New Zealand
|
Doh! That'll teach me for replying before going and actually looking at the documentation directly. The documentation for MO72 is, as far as I know, perfectly correct. What was not pointed out was that this documentation is in the section marked 'Modifying the Client Channel Table'.
MO72 has the ability to create and edit a Client Channel Table on the local client machine without going anywhere near the Queue Manager or the command server. As such I had to implement the actual MQSC commands myself rather than passing them off to the Command Server. Since I was implementing the commands I removed a few restriction which I felt were annoying. One of them being the wildcard rule in the WHERE clause.
So, the documentation is correct. You can issue command like
DIS CHL(*) WHERE(CONNAME LK *1414*)
but ONLY if you are issuing a local command to the local Client Channel Table and not if you are passing the command to the standard MQ command server.
I hope that makes it clear,
Cheers,
Paul. _________________ Paul Clarke
MQGem Software
www.mqgem.com |
|
Back to top |
|
 |
wmbwmq |
Posted: Thu Jul 25, 2013 8:39 am Post subject: |
|
|
 Acolyte
Joined: 18 Jul 2011 Posts: 66
|
Thank you so much Paul.
All clear now. It worked for mqscx. |
|
Back to top |
|
 |
JosephGramig |
Posted: Thu Jul 25, 2013 11:39 am Post subject: |
|
|
 Grand Master
Joined: 09 Feb 2006 Posts: 1244 Location: Gold Coast of Florida, USA
|
If wishes where fishes...
Too bad:
- MQE Does not have a folder for CCDTs and allow you to edit them independent of Qmgrs
- runmqsc does not have a switch to allow you to edit CCDTs same as mqsc -n
If you think about it, the manipulation of CCDTs should always have been part of the MQ Client and maybe have a separate command processor for that like runmqscc. |
|
Back to top |
|
 |
|