Author |
Message
|
monkey |
Posted: Wed Mar 15, 2006 4:10 am Post subject: sending messages to multiple queues at the same time |
|
|
 Novice
Joined: 15 Feb 2006 Posts: 24 Location: London
|
I need to set something up to allow messages to be delivered to 2 different locations at once.
Oracle AQ is putting messages on a queue, and these are then delivered onto another queue in a cluster.
We need the message to be delivered to another queue in addition to the existing one - which will exist on a separate queue manager outside the current cluster.
We need to do this without changing Oracle AQ, so it needs to all be done internally to MQ.
I thought using a namelist would be a good idea - but I have no idea how to actually direct the messages at the namelist so to speak.
There must be something obvious that I'm missing - but a day of trawling through the manuals has proved fuitless!
Any suggestions anyone? |
|
Back to top |
|
 |
PeterPotkay |
Posted: Wed Mar 15, 2006 4:46 am Post subject: |
|
|
 Poobah
Joined: 15 May 2001 Posts: 7722
|
U can install the miiroq exit on the QM (do a search for mirrorq here).
You can write code that opens a namelist, gets all the names, and uses it to open and put to each queue in the list, or to build, open and put to a MQ distribution list. (look in the App. Programming Guide for these last 2 options). _________________ Peter Potkay
Keep Calm and MQ On |
|
Back to top |
|
 |
monkey |
Posted: Wed Mar 15, 2006 5:46 am Post subject: |
|
|
 Novice
Joined: 15 Feb 2006 Posts: 24 Location: London
|
Thanks, I'll check out mirrorq ! |
|
Back to top |
|
 |
monkey |
Posted: Wed Mar 15, 2006 5:58 am Post subject: |
|
|
 Novice
Joined: 15 Feb 2006 Posts: 24 Location: London
|
Hmm, mirorq only seems to work for queues that messages are sitting on.
My scenario is that I need to capture them as they flow through the system, they don't remain on our system, so before they flow straight out I need them to go to a second queu where they will sit and we can browse them at our leisure. |
|
Back to top |
|
 |
jefflowrey |
Posted: Wed Mar 15, 2006 6:06 am Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
MirrorQ works on qremotes as well as qlocals, as far as I know - at least the API exit form. API Exits get called when *anything*, including MCAs, make an MQ API call. _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
monkey |
Posted: Wed Mar 15, 2006 6:31 am Post subject: |
|
|
 Novice
Joined: 15 Feb 2006 Posts: 24 Location: London
|
jefflowrey wrote: |
MirrorQ works on qremotes as well as qlocals, as far as I know - at least the API exit form. API Exits get called when *anything*, including MCAs, make an MQ API call. |
looks like I'll have to take a deeper look then! Thanks guys. |
|
Back to top |
|
 |
clindsey |
Posted: Wed Mar 15, 2006 6:31 am Post subject: |
|
|
Knight
Joined: 12 Jul 2002 Posts: 586 Location: Dallas, Tx
|
Quote: |
Hmm, mirorq only seems to work for queues that messages are sitting on.
My scenario is that I need to capture them as they flow through the system, they don't remain on our system, so before they flow straight out I need them to go to a second queu where they will sit and we can browse them at our leisure.
|
mirrorq copies the message to a second queue at the time it is put to the original queue. The second (or more) queue(s) can be local or remote.
Charlie |
|
Back to top |
|
 |
monkey |
Posted: Wed Mar 29, 2006 3:40 am Post subject: Sorted |
|
|
 Novice
Joined: 15 Feb 2006 Posts: 24 Location: London
|
Got mirrorq working nicely.
It does exactly what I wanted.
Cheers guys. |
|
Back to top |
|
 |
wbimb |
Posted: Mon Aug 28, 2006 2:57 am Post subject: |
|
|
 Centurion
Joined: 17 Aug 2006 Posts: 144
|
hey monkey
i downloaded the mirrorq on windows....then i followed the steps
i have done all the steps it says
1. Copy the API Exit to <MQMTOP>\exits */
Copy mirrorq.dll to <MQMTOP>\exits */
where <MQMTOP> is the drive and path where WebSphere */
/* MQSeries is installed. */
/* */
/* 2. Create a Namelist */
/* From the MQExplorer click on the + sign next to the */
/* Queue Manager name. */
/* Click on the + sign next to the Advanced tab to expand */
/* the list. */
/* Right click on Namelist and select New and Namelist. */
/* Enter a name, for example mirrorq. */
/* NOTE: Although a name up to 48 characters is allowed, */
/* only 32 characters is allowed to configure this name */
/* in the exitdata field so restrict the name to 32 */
/* characters. */
/* In the names field, enter the source Queue to be */
/* copied, followed by the target Queue to copy messages */
/* to followed by the Queue Manager name of the target */
/* Queue. The Queue Manager name is required even if it */
/* is the local Queue Manager. If there is a second Queue */
/* to be mirrored, then enter the next source queue, target */
/* Queue, target Queue Manager. For example: */
/* TEST_IN,TEST_IN_COPY,VENUS.QMGR,TEST_OUT, */
/* TEST_OUT_COPY,PLUTO.QMGR */
/* Click OK to save the new Namelist. */
/* */
/* 3. Configue the API EXIT */
/* From WebSphere MQ Services, right click on the Queue */
/* Manager and then click on the Exits tab. */
/* Near the bottom, click on the Configure button in the */
/* API Exit section. */
/* Click on the Add button. */
/* Enter a name for the API Exit such as MirrorQ. */
/* Enter EntryPoint in the Function field. */
/* Enter the full path to mirrorq.dll in the Module field */
/* for example: c:\MQSeries\exits\mirrorq.dll or */
/* click the Browse button to locate mirrorq.dll. */
/* Click the window next to Data to enable the data field */
/* and enter the name of the Namelist created in step 2. */
/* If you have other API Exits configured, select a */
/* Sequence Number for this exit that is higher if you */
/* want it called following the other exit(s) or lower if */
/* you want it call prior to the other exit(s). Otherwise, */
/* leave the default Sequence Number. */
/* Click OK to save the exit definition and OK to exit */
/* the Queue Manager properties. */
/* */
/* */
/* 4. Stop / Start the Queue Manager */
/* To activitate the API Exit, stop and restart the */
/* Queue Manager. */
/* */
/* */
/* 5. Test the API Exit */
/* From MQSeries Explorer, click the + next to the Queue */
/* Manager and click Queues. */
/* Right click on one of the Queues to be mirrored and */
/* click on Put Test Message. */
/* Enter a string of text. */
/* Click OK to put the message.
when i put a message in the local q it doesnt go to other local q's
can someone help me
Last edited by wbimb on Mon Aug 28, 2006 3:17 am; edited 1 time in total |
|
Back to top |
|
 |
wschutz |
Posted: Mon Aug 28, 2006 3:11 am Post subject: |
|
|
 Jedi Knight
Joined: 02 Jun 2005 Posts: 3316 Location: IBM (retired)
|
Monkey hasn't been vry active lately...
what exactly have you tried and what doesn't work ? _________________ -wayne |
|
Back to top |
|
 |
wbimb |
Posted: Mon Aug 28, 2006 3:40 am Post subject: |
|
|
 Centurion
Joined: 17 Aug 2006 Posts: 144
|
ohhhh ok i will tell wht i tried
MQ5.3 on windows
I have a QMgr QM1
I created 2 local q on it Q1 and Q2
then i downloaded the mirrorq for windows
then as the mirrorq...i did following things
i copied the mirrorq.dll in the path <mqseries_installation_path>\exists
created a namelist with the name mirrorq on QMgr QM1 with names as Q1,Q2
Then went to MQSeries Services right click on the Queue Manager (QM1) and then click on the Exits tab. Then clicked configure and then ADD
Entered a name for the API Exit such as MirrorQ.
Entered EntryPoint in the Function field.
Enter the full path to mirrorq.dll <mqseries_installation_path>\exists\mirrorq.dll
in the data field entered the namelist name
and then clicked apply and OK
Then restarted the QMgr and then put the message on the Q1 local Q....
ALl these steps were mentioned the mirrorq....but it didnt work.....HAVE I MISSED ANYTHING TO DO....THEN PLEASE HELP ME |
|
Back to top |
|
 |
jefflowrey |
Posted: Mon Aug 28, 2006 3:58 am Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
wbimb wrote: |
....but it didnt work.....HAVE I MISSED ANYTHING TO DO....THEN PLEASE HELP ME |
Apparently, you haven't done any troubleshooting.
How do you know it doesn't work? Are there errors somewhere? What are they? Are the messages that should be "mirrored" not being mirrored?
Also, are you sure you spelled 'exits' right in your actual configuration? _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
wbimb |
Posted: Mon Aug 28, 2006 4:32 am Post subject: |
|
|
 Centurion
Joined: 17 Aug 2006 Posts: 144
|
i dont know whether there are any errors...i dont know where should i look for error
I didnt get wht u mean by ths
"Also, are you sure you spelled 'exits' right in your actual configuration"
I have put mirrorq.dll in the installation path od MQSeries under folder exists...
Please help me |
|
Back to top |
|
 |
jefflowrey |
Posted: Mon Aug 28, 2006 4:43 am Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
If you don't know where to look for errors, then you shouldn't be trying to configure an Exit. _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
kevinf2349 |
Posted: Mon Aug 28, 2006 4:50 am Post subject: |
|
|
 Grand Master
Joined: 28 Feb 2003 Posts: 1311 Location: USA
|
Quote: |
I didnt get wht u mean by ths
"Also, are you sure you spelled 'exits' right in your actual configuration"
|
Well I hate to second guess Jeff, but I believe he is aluding to this:
Quote: |
i copied the mirrorq.dll in the path <mqseries_installation_path>\
exists |
 |
|
Back to top |
|
 |
|