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 IndexGeneral IBM MQ SupportCreating copies of messages from a Queue

Post new topicReply to topic
Creating copies of messages from a Queue View previous topic :: View next topic
Author Message
krypton
PostPosted: Tue Oct 23, 2018 10:05 am Post subject: Creating copies of messages from a Queue Reply with quote

Disciple

Joined: 14 Mar 2010
Posts: 158

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
View user's profile Send private message
Vitor
PostPosted: Tue Oct 23, 2018 10:15 am Post subject: Re: Creating copies of messages from a Queue Reply with quote

Grand High Poobah

Joined: 11 Nov 2005
Posts: 25310
Location: Ohio, 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
View user's profile Send private message
krypton
PostPosted: Tue Oct 23, 2018 11:08 am Post subject: Reply with quote

Disciple

Joined: 14 Mar 2010
Posts: 158

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
View user's profile Send private message
Vitor
PostPosted: Tue Oct 23, 2018 11:34 am Post subject: Reply with quote

Grand High Poobah

Joined: 11 Nov 2005
Posts: 25310
Location: Ohio, 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
View user's profile Send private message
krypton
PostPosted: Tue Oct 23, 2018 12:10 pm Post subject: Reply with quote

Disciple

Joined: 14 Mar 2010
Posts: 158

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
View user's profile Send private message
krypton
PostPosted: Tue Oct 23, 2018 12:17 pm Post subject: Reply with quote

Disciple

Joined: 14 Mar 2010
Posts: 158

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
View user's profile Send private message
RogerLacroix
PostPosted: Tue Oct 23, 2018 12:44 pm Post subject: Reply with quote

Jedi Knight

Joined: 15 May 2001
Posts: 3081
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
View user's profile Send private message Visit poster's website
krypton
PostPosted: Tue Oct 23, 2018 1:24 pm Post subject: Reply with quote

Disciple

Joined: 14 Mar 2010
Posts: 158

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
View user's profile Send private message
bruce2359
PostPosted: Tue Oct 23, 2018 1:56 pm Post subject: Reply with quote

Poobah

Joined: 05 Jan 2008
Posts: 8188
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 would tell you a UDP joke, but you might not get it.
Back to top
View user's profile Send private message
hughson
PostPosted: Tue Oct 23, 2018 5:52 pm Post subject: Reply with quote

Sentinel

Joined: 09 May 2013
Posts: 840
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
View user's profile Send private message Visit poster's website
Vitor
PostPosted: Wed Oct 24, 2018 4:55 am Post subject: Reply with quote

Grand High Poobah

Joined: 11 Nov 2005
Posts: 25310
Location: Ohio, 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
View user's profile Send private message
Vitor
PostPosted: Wed Oct 24, 2018 4:58 am Post subject: Reply with quote

Grand High Poobah

Joined: 11 Nov 2005
Posts: 25310
Location: Ohio, 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
View user's profile Send private message
Vitor
PostPosted: Wed Oct 24, 2018 4:59 am Post subject: Reply with quote

Grand High Poobah

Joined: 11 Nov 2005
Posts: 25310
Location: Ohio, 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
View user's profile Send private message
RogerLacroix
PostPosted: Wed Oct 24, 2018 8:24 am Post subject: Reply with quote

Jedi Knight

Joined: 15 May 2001
Posts: 3081
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
View user's profile Send private message Visit poster's website
Vitor
PostPosted: Wed Oct 24, 2018 9:34 am Post subject: Reply with quote

Grand High Poobah

Joined: 11 Nov 2005
Posts: 25310
Location: Ohio, 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
View user's profile Send private message
Display posts from previous:
Post new topicReply to topic Page 1 of 1

MQSeries.net Forum IndexGeneral IBM MQ SupportCreating copies of messages from a Queue
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.