Author |
Message
|
krypton |
Posted: Tue Oct 23, 2018 10:05 am Post subject: Creating copies of messages from a Queue |
|
|
 Disciple
Joined: 14 Mar 2010 Posts: 186
|
Hi , we have a requirement, where we need to pick message from Queue A and create copies in Queue B and Queue C and delete the original message from Queue A.
Also, we want exclusive input on Queue A so that no other application listeners can pick messages from that Queue.
Is there a way to do it with any existing utility? _________________ Dreams are not something which you watch when you are asleep,it is something which doesn't let you sleep. |
|
Back to top |
|
 |
Vitor |
Posted: Tue Oct 23, 2018 10:15 am Post subject: Re: Creating copies of messages from a Queue |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
krypton wrote: |
Is there a way to do it with any existing utility? |
Save advice as always - use pub/sub to replace queue A and just deliver the message to queue B & C _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
krypton |
Posted: Tue Oct 23, 2018 11:08 am Post subject: |
|
|
 Disciple
Joined: 14 Mar 2010 Posts: 186
|
Hi Vitor,
Quote: |
Save advice as always - use pub/sub to replace queue A and just deliver the message to queue B & C
|
Thank you for replying, our putting application in Queue A is a 3rd party vendor application who are not willing to change without costing us a fortune.
So, we are looking for some in house solutions, like Q program and dmpmqmsg does that but they copy from Queue A to Queue B or C, not to both at one time.
Or are you aware of a way, where we can put exclusive hold on Queue A so that message from Queue A is only picked by dmpmqmsg utility. _________________ Dreams are not something which you watch when you are asleep,it is something which doesn't let you sleep. |
|
Back to top |
|
 |
Vitor |
Posted: Tue Oct 23, 2018 11:34 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
krypton wrote: |
Hi Vitor,
Quote: |
Save advice as always - use pub/sub to replace queue A and just deliver the message to queue B & C
|
Thank you for replying, our putting application in Queue A is a 3rd party vendor application who are not willing to change without costing us a fortune. |
I get that. There was a post recently where someone had a similar problem which might be informative, but my basic point is that your 3rd party doesn't know what they're putting to so as long as they can do a put to an object with the same name as queue A they're happy.
krypton wrote: |
So, we are looking for some in house solutions, like Q program and dmpmqmsg does that but they copy from Queue A to Queue B or C, not to both at one time. |
I know some vendors have shrink wrap solutions that can do this (one of them is a sponsor of this forum) so maybe ReQuest would suit.
krypton wrote: |
Or are you aware of a way, where we can put exclusive hold on Queue A so that message from Queue A is only picked by dmpmqmsg utility. |
You could set up a queue with NOSHARE so that it can only be opened by one application at a time, then set security so only the user running dmpmqmsg has get authority.
If someone accidentally or maliciously opened the queue using the mqm user (i.e. through the explorer) you'd be screwed. _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
krypton |
Posted: Tue Oct 23, 2018 12:10 pm Post subject: |
|
|
 Disciple
Joined: 14 Mar 2010 Posts: 186
|
Quote: |
krypton wrote:
Or are you aware of a way, where we can put exclusive hold on Queue A so that message from Queue A is only picked by dmpmqmsg utility.
You could set up a queue with NOSHARE so that it can only be opened by one application at a time, then set security so only the user running dmpmqmsg has get authority. |
Thank you for replying again but I made a mistake specifying the requirement.
we want "dmpmqmsg" or any other utility to browse and make a copy of the message 1st (from Queue A), so that other application who is listening to Queue A consumer thereafter. We don't want that other application to consumer the message before the utility "dmpmqmsg" gets a chance. _________________ Dreams are not something which you watch when you are asleep,it is something which doesn't let you sleep. |
|
Back to top |
|
 |
krypton |
Posted: Tue Oct 23, 2018 12:17 pm Post subject: |
|
|
 Disciple
Joined: 14 Mar 2010 Posts: 186
|
Hi Vitor,
Quote: |
I get that. There was a post recently where someone had a similar problem which might be informative, but my basic point is that your 3rd party doesn't know what they're putting to so as long as they can do a put to an object with the same name as queue A they're happy.
|
Regarding this, does the Pub Sub completely handled by MQ? and no changes required at application side of any kind?
Suppose if Sending application, put into Queue -A , can the pub sub mechanism deliver it to Subscriber Queue B and Subscriber Queue C and application doesn't have to make any changes?
Or is there any changes required on the consuming application?
So our scenario here is currently a 3rd party application put to Queue A and the in-house application get it from Queue A.
New Requirement 3rd party application continue to put into Queue A with no changes whatsoever and a copy of consuming application(new requirement) "GET()" from Queue B and Queue C _________________ Dreams are not something which you watch when you are asleep,it is something which doesn't let you sleep. |
|
Back to top |
|
 |
RogerLacroix |
Posted: Tue Oct 23, 2018 12:44 pm Post subject: |
|
|
 Jedi Knight
Joined: 15 May 2001 Posts: 3264 Location: London, ON Canada
|
Did you look at MQ Message Replication? It clones the message data and MQMD (including MsgId, PutDate, PutTime, etc.) when putting to the target queue(s).
Regards,
Roger Lacroix
Capitalware Inc. _________________ Capitalware: Transforming tomorrow into today.
Connected to MQ!
Twitter |
|
Back to top |
|
 |
krypton |
Posted: Tue Oct 23, 2018 1:24 pm Post subject: |
|
|
 Disciple
Joined: 14 Mar 2010 Posts: 186
|
Found a article on another page mentioning how it can be done using Pub/Sub. _________________ Dreams are not something which you watch when you are asleep,it is something which doesn't let you sleep. |
|
Back to top |
|
 |
bruce2359 |
Posted: Tue Oct 23, 2018 1:56 pm Post subject: |
|
|
 Poobah
Joined: 05 Jan 2008 Posts: 9469 Location: US: west coast, almost. Otherwise, enroute.
|
krypton wrote: |
Found a article on another page mentioning how it can be done using Pub/Sub. |
What other page? _________________ I like deadlines. I like to wave as they pass by.
ב''ה
Lex Orandi, Lex Credendi, Lex Vivendi. As we Worship, So we Believe, So we Live. |
|
Back to top |
|
 |
hughson |
Posted: Tue Oct 23, 2018 5:52 pm Post subject: |
|
|
 Padawan
Joined: 09 May 2013 Posts: 1959 Location: Bay of Plenty, New Zealand
|
krypton wrote: |
So, we are looking for some in house solutions, like Q program does that but it copies from Queue A to Queue B or C, not to both at one time. |
Q program can copy to a list of queues. Just repeat the parameter.
QLOAD can also do this, use -o flag repeatedly.
Cheers,
Morag _________________ Morag Hughson @MoragHughson
IBM MQ Technical Education Specialist
Get your IBM MQ training here!
MQGem Software |
|
Back to top |
|
 |
Vitor |
Posted: Wed Oct 24, 2018 4:55 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
RogerLacroix wrote: |
Did you look at MQ Message Replication? It clones the message data and MQMD (including MsgId, PutDate, PutTime, etc.) when putting to the target queue(s). |
I ruled out this kind of solution on the assumption that "no changes to the putting application" probably included installing an exit. _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
Vitor |
Posted: Wed Oct 24, 2018 4:58 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
krypton wrote: |
we want "dmpmqmsg" or any other utility to browse and make a copy of the message 1st (from Queue A), so that other application who is listening to Queue A consumer thereafter. We don't want that other application to consumer the message before the utility "dmpmqmsg" gets a chance. |
This is impossible.
The 2 applications will be in a race to any given message. Even if dspmqmsg wins, browses and locks a message while it's copying it, the next application will just skip it and retrieve the next available message, which will in all probability be one that's not been browsed and copied yet.
Pub/sub is the answer. _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
Vitor |
Posted: Wed Oct 24, 2018 4:59 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
krypton wrote: |
Regarding this, does the Pub Sub completely handled by MQ? and no changes required at application side of any kind? |
Yes.
krypton wrote: |
Suppose if Sending application, put into Queue -A , can the pub sub mechanism deliver it to Subscriber Queue B and Subscriber Queue C and application doesn't have to make any changes? |
Yes
krypton wrote: |
Or is there any changes required on the consuming application? |
No _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
RogerLacroix |
Posted: Wed Oct 24, 2018 8:24 am Post subject: |
|
|
 Jedi Knight
Joined: 15 May 2001 Posts: 3264 Location: London, ON Canada
|
Vitor wrote: |
RogerLacroix wrote: |
Did you look at MQ Message Replication? It clones the message data and MQMD (including MsgId, PutDate, PutTime, etc.) when putting to the target queue(s). |
I ruled out this kind of solution on the assumption that "no changes to the putting application" probably included installing an exit. |
I guess I should have added a description of MQ Message Replication (MQMR). MQMR does not require application changes. It is installed where your queue manager runs and is completely invisible to the putting application (and to the getting application too).
A customer who was building their own solution decided to try out MQMR and this is part of the email they sent me yesterday:
Quote: |
I completed testing out the MQMR product, It work well and the performance is great. It added insignificant overhead to non-replicated queues and was very efficient handing replication. Much better than the method we are using today. I have asked management to approve. |
So, if your requirements are to have both the message data and MQMD cloned exactly then you should have a serious look at MQMR.
We offer a free 60-day trial for unlimited queue managers which includes free support. Absolutely no strings attached.
Regards,
Roger Lacroix
Capitalware Inc. _________________ Capitalware: Transforming tomorrow into today.
Connected to MQ!
Twitter |
|
Back to top |
|
 |
Vitor |
Posted: Wed Oct 24, 2018 9:34 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
RogerLacroix wrote: |
I guess I should have added a description of MQ Message Replication (MQMR). MQMR does not require application changes. It is installed where your queue manager runs and is completely invisible to the putting application (and to the getting application too). |
I stand entirely corrected.
@exerk, you finished that floor yet......? _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
|