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 duplicate of messages

Post new topicReply to topic
creating duplicate of messages View previous topic :: View next topic
Author Message
vicks_mq
PostPosted: Wed Jan 16, 2019 9:58 am Post subject: creating duplicate of messages Reply with quote

Disciple

Joined: 03 Oct 2017
Posts: 157

We have a requirement where for few hours during a critical maintenance window, we need to take backup of all the messages coming to a particular local Q,
I tried pub sub, but somehow that scenario will not work.

Suppose Application A is putting message in local TESTQ and application B is picking message from this queue and if I change this TESTQ to point to TOPIC and make 2 subscribers and 2 destinations - DESTQ1 & DESTQ2, then application B configuration need to change to pick message from DESTQ1.

We don't want to change any application configuration and doesn't want to do deployment.

Also, I was wondering just how an application can put message into ALIAS Q which point to a TOpic, can another application also point to same ALIASQ which point to Topic and pick the messages ?
Back to top
View user's profile Send private message
exerk
PostPosted: Wed Jan 16, 2019 11:28 am Post subject: Reply with quote

Jedi Council

Joined: 02 Nov 2006
Posts: 6062

To quote an old post from PeterPotkay (props to the man!):

Quote:
App A is putting to a local q called Q1. App B is pulling from Q1. You have MQ 7 and want to duplicate the messages but do not want to change the sending or receiving app code.


Define a topic called Q1T, with a topic string of Q1

Define a sub to topic object Q1T, with a destination of Q1

Define a Q Alias called Q1Alias, target type topic with a target of Q1T

A put to Q1Alias will now produce a message to the Q1 local queue

Define another sub to topic object Q1T, this time with a destination of Q2

A put to Q1Alias will now produce 2 messages, one to Q1 and one to Q2.


The only change in the original setup is that App A puts to Q1Alias instead of Q1. App A and App B don't know they are using Pub Sub. The subscriptions are created by the MQ Admin using admin commands.


In your case substitute the appropriate queue names, as you may have to redefine your current QLOCAL as a QALIAS - which is a a good example of why application should never PUT/GET from anything but a QALIAS.
_________________
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
View user's profile Send private message
RogerLacroix
PostPosted: Wed Jan 16, 2019 11:45 am Post subject: Reply with quote

Jedi Knight

Joined: 15 May 2001
Posts: 3120
Location: London, ON Canada

The biggest downside to copying messages via Pub/Sub is that certain fields of the message's MQMD are not duplicated. i.e. Date, Time, MsgId, etc.

If you need an exact copy of the messages including MQMD then you should have a look at MQ Message Replication.

Also, with MQMR, you do not need to add extra topics, subscriptions or even queue aliases because MQMR is an API Exit and runs within the queue manager.

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
vicks_mq
PostPosted: Wed Jan 16, 2019 12:47 pm Post subject: Reply with quote

Disciple

Joined: 03 Oct 2017
Posts: 157

exerk wrote:
To quote an old post from PeterPotkay (props to the man!):

Quote:
App A is putting to a local q called Q1. App B is pulling from Q1. You have MQ 7 and want to duplicate the messages but do not want to change the sending or receiving app code.


Define a topic called Q1T, with a topic string of Q1

Define a sub to topic object Q1T, with a destination of Q1

Define a Q Alias called Q1Alias, target type topic with a target of Q1T

A put to Q1Alias will now produce a message to the Q1 local queue

Define another sub to topic object Q1T, this time with a destination of Q2

A put to Q1Alias will now produce 2 messages, one to Q1 and one to Q2.


The only change in the original setup is that App A puts to Q1Alias instead of Q1. App A and App B don't know they are using Pub Sub. The subscriptions are created by the MQ Admin using admin commands.


In your case substitute the appropriate queue names, as you may have to redefine your current QLOCAL as a QALIAS - which is a a good example of why application should never PUT/GET from anything but a QALIAS.


we have issue with this approach that both App A and App B is picking the queue name from same database parameter, so if I changename Queue A Alias Q(which point to Topic), the App B will also automatically to this Alias Q (because it is same DB parameter) and because Alias Q is pointing to Topic, the App B will not be able to pick from this AliasQ
Back to top
View user's profile Send private message
PaulClarke
PostPosted: Wed Jan 16, 2019 1:52 pm Post subject: Reply with quote

Guardian

Joined: 17 Nov 2005
Posts: 941
Location: New Zealand

Can't you just use a simple message splitter ? Something like my SupportPac MA01 (Q Program) would do it. Something like:

Code:
q -I SOURCEQ -o TARGET1 -o TARGET2 -p 10 -w 6000


QLOAD will also do the same thing. I am sure there are a number of MQ programs which will take a source message and send the message to multiple locations.

Regards,

Paul.
_________________
Paul Clarke
MQGem Software
www.mqgem.com
Back to top
View user's profile Send private message Visit poster's website
vicks_mq
PostPosted: Thu Jan 17, 2019 7:28 am Post subject: Reply with quote

Disciple

Joined: 03 Oct 2017
Posts: 157

PaulClarke wrote:
Can't you just use a simple message splitter ? Something like my SupportPac MA01 (Q Program) would do it. Something like:

Code:
q -I SOURCEQ -o TARGET1 -o TARGET2 -p 10 -w 6000


QLOAD will also do the same thing. I am sure there are a number of MQ programs which will take a source message and send the message to multiple locations.

Regards,

Paul.


Hi Paul, thank you for reply, the challenge is all these programs need to run manually , we were looking for a dynamic solution which as soon as message arrives in the queue, the message gets duplicated before even the "consuming" application "GET" the message.
Back to top
View user's profile Send private message
exerk
PostPosted: Thu Jan 17, 2019 7:43 am Post subject: Reply with quote

Jedi Council

Joined: 02 Nov 2006
Posts: 6062

vicks_mq wrote:
...the message gets duplicated before even the "consuming" application "GET" the message.

And just how were you going to stop the race condition between the application and the duplicator?
_________________
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
View user's profile Send private message
vicks_mq
PostPosted: Thu Jan 17, 2019 10:40 am Post subject: Reply with quote

Disciple

Joined: 03 Oct 2017
Posts: 157

exerk wrote:
vicks_mq wrote:
...the message gets duplicated before even the "consuming" application "GET" the message.

And just how were you going to stop the race condition between the application and the duplicator?


Hi Exerk, Pub Sub does the job where it duplicates the messages , I know the challenge here is the receiving application is listening to same Q as the Putting application, and that is why I was wondering if there is any solution.
Back to top
View user's profile Send private message
exerk
PostPosted: Thu Jan 17, 2019 11:59 am Post subject: Reply with quote

Jedi Council

Joined: 02 Nov 2006
Posts: 6062

vicks_mq wrote:
exerk wrote:
vicks_mq wrote:
...the message gets duplicated before even the "consuming" application "GET" the message.

And just how were you going to stop the race condition between the application and the duplicator?


Hi Exerk, Pub Sub does the job where it duplicates the messages , I know the challenge here is the receiving application is listening to same Q as the Putting application, and that is why I was wondering if there is any solution.

The solution is to not let applications directly access a QLOCAL - take the pains now to change your standard, it will be a lot easier to change things in the future and make those changes transparent to the applications.
_________________
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
View user's profile Send private message
RogerLacroix
PostPosted: Thu Jan 17, 2019 3:45 pm Post subject: Reply with quote

Jedi Knight

Joined: 15 May 2001
Posts: 3120
Location: London, ON Canada

vicks_mq wrote:
the challenge is all these programs need to run manually , we were looking for a dynamic solution which as soon as message arrives in the queue, the message gets duplicated before even the "consuming" application "GET" the message.

You really should have a look at MQ Message Replication (MQMR). MQMR is not a manually started process nor does it require extra queues or topics.

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
Display posts from previous:
Post new topicReply to topic Page 1 of 1

MQSeries.net Forum IndexGeneral IBM MQ Supportcreating duplicate of messages
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.