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 Index » WebSphere Message Broker (ACE) Support » how to stop perticular message for perticular amount of time

Post new topic  Reply to topic
 how to stop perticular message for perticular amount of time « View previous topic :: View next topic » 
Author Message
udayakumarisampalli
PostPosted: Tue Dec 05, 2006 9:01 pm    Post subject: how to stop perticular message for perticular amount of time Reply with quote

Novice

Joined: 20 Jul 2006
Posts: 19
Location: India

hi,

i have designed a flow which makes of the following things & functionality
1. it will starts with 'TimeoutNotification' node.
2. it is connected with MQGet after which some comput nodes and MQ Output node.
3. again MQ output node connected with the MQ Get node input termina.

Functionality:
this flow will start at intervel of 10 min and picks up messsage from Queue 'AA" and process it. as MQ Output node connected the MQGET node will process all the messages in the Queue 'AA' once the flow started after 10 MIN.

According my requirement, as each message contain some time stamp which says when to process that message. if that time stap is less than the current timestamp i will put message in the source Queue 'AA' else i will send the message to destination Queue.
ex: if Timestamp(TS) in message says 10PM and current TS is 9PM i will put this message agian to sourece Queue.

now my problem is that as this flow starts agian in an intervel of 10 min i.e., 9:10 PM it will again process the same message and as the time to process it is 10 PM again put the source Queue. so like this message is picking up by flow for many times.

can we make the flow to pickup the message only once after it checed the timestamp for fist time . i.e, message should be procesed maximum of 2 times by this flow before it sends to the destination Queue.
but mean while the flow should process at every 10 min for the rest of the messages. how can i achieve this? please provide me some kind of inputs.
is CommitCount property of flow will be used for this? if so please tell me how to use this.
Back to top
View user's profile Send private message Yahoo Messenger
elvis_gn
PostPosted: Tue Dec 05, 2006 9:40 pm    Post subject: Reply with quote

Padawan

Joined: 08 Oct 2004
Posts: 1905
Location: Dubai

Hi udayakumarisampalli,

I would suggest that you put all your messages into a queue, run a scheduled task on it every 10 min...

That scheduled task should take your messages and move them to the queue which runs the flow, when required...

All said and done, dont use MQ as a storage...

Regards.
Back to top
View user's profile Send private message Send e-mail
udayakumarisampalli
PostPosted: Tue Dec 05, 2006 9:55 pm    Post subject: Reply with quote

Novice

Joined: 20 Jul 2006
Posts: 19
Location: India

hi elvis,
here my problem is not storing in the Queue and shceduling it at 10 min. because i could able to achieve it through "Timeoutnotification" node but as i told i need to stop certain message being processed for sectond time by the flow till the timestamp in the message reaches the current timestamp. but mean while when the flow triggers at every 10 min the rest of all the messages should be processed.

thank you

regards
Uday
Back to top
View user's profile Send private message Yahoo Messenger
Gaya3
PostPosted: Tue Dec 05, 2006 9:59 pm    Post subject: Reply with quote

Jedi

Joined: 12 Sep 2006
Posts: 2493
Location: Boston, US

Hi

As you know the queue works in FIFO, or in priority wise.

So what ever be the messages in the queue will be get processed by the flow.

Thanks and Regards
Gayathri
_________________
Regards
Gayathri
-----------------------------------------------
Do Something Before you Die
Back to top
View user's profile Send private message
jbanoop
PostPosted: Tue Dec 05, 2006 10:02 pm    Post subject: Reply with quote

Chevalier

Joined: 17 Sep 2005
Posts: 401
Location: SC

u should look at setting the time interval in which to run the flow (the configuration on timeout notification) to a more optimal value (maybe increase the time interval) so that you can minimise the number of times it samples one message ..
u shld not be encountering the same message more than twise too often because of the FIFO behaviour, so look at optimizing ur flow run time and u shld be ok i guess.

Anoop
Back to top
View user's profile Send private message Yahoo Messenger
elvis_gn
PostPosted: Tue Dec 05, 2006 10:24 pm    Post subject: Reply with quote

Padawan

Joined: 08 Oct 2004
Posts: 1905
Location: Dubai

Hi udayakumarisampalli,
udayakumarisampalli wrote:
i need to stop certain message being processed for sectond time by the flow till the timestamp in the message reaches the current timestamp. but mean while when the flow triggers at every 10 min the rest of all the messages should be processed.
Thats the reason I asked you to use a scheduled task.

Running the messages from the flow again and again is going to be more costly than using a small java app, that simply checks the time in your message and routes it or not.

But, personally my best design would be to run a flow to insert these messages into a db, I would set the time in a column, then trigger another flow to run every 10min to pick only those rows that have past the time and dont have a flag set as "processed". Run these messages and update their status as "processed".

I would expect my first flow to keep entering new rows and cleaning processed ones.

Regards.
Back to top
View user's profile Send private message Send e-mail
udayakumarisampalli
PostPosted: Tue Dec 05, 2006 10:28 pm    Post subject: Reply with quote

Novice

Joined: 20 Jul 2006
Posts: 19
Location: India

hi Anoop,

i got what you told but. i can not increase the intervel because i will get around 50+ message in every 10 min so i will be fixing the interval as 10 min or else less than that. in such case if a message processed at 8 PM as the rquired process time is 10 min i need put this message in the souce Queue. in such case as at each 10 min it will process all the messages, even though this message present at the end it will get procesed at least 12 times which i need to control.

do you any thing about CommitCount property of the flow? can we this for this scenario.

thank you

regards
Uday
Back to top
View user's profile Send private message Yahoo Messenger
udayakumarisampalli
PostPosted: Tue Dec 05, 2006 10:34 pm    Post subject: Reply with quote

Novice

Joined: 20 Jul 2006
Posts: 19
Location: India

hi Elvis,

thank you. i too think you design wold be much suitable for this requirement. i will try this out.
do you know any details about "CommitCount" property of the message flow? can we use this.


regards
Uday
Back to top
View user's profile Send private message Yahoo Messenger
jbanoop
PostPosted: Tue Dec 05, 2006 11:44 pm    Post subject: Reply with quote

Chevalier

Joined: 17 Sep 2005
Posts: 401
Location: SC

broker help says this about commit count
Quote:
How many input messages are processed by the message flow before a syncpoint is taken.


so i guess u will not find it useful and I would concur that Elvis_gn's suggestion would be the way to go unless u have a lead or mgr breathin down ur neck to use the former approach.

Best of luck
Anoop
Back to top
View user's profile Send private message Yahoo Messenger
elvis_gn
PostPosted: Tue Dec 05, 2006 11:53 pm    Post subject: Reply with quote

Padawan

Joined: 08 Oct 2004
Posts: 1905
Location: Dubai

Hi udayakumarisampalli,

The CommitCount is for committing a 'x' number of messages together, I don't see how you want it to apply here.

I'm not sure, but I think it will work as below:
Say your commit count is 5...if 4 messages are successfully processed, they will still not appear in the output queue(unless transaction is at no), when the 5th message is also successfully processed, all will appear in the output, if the 5th fails, then all will be rolled back to the input queue.

Not want your want I suppose...if you dont want to process a message, you'll have to throw a user exception...in that case the backout count will keep increasing...a total mess...

Regards.
Back to top
View user's profile Send private message Send e-mail
jefflowrey
PostPosted: Wed Dec 06, 2006 2:11 am    Post subject: Reply with quote

Grand Poobah

Joined: 16 Oct 2002
Posts: 19981

Read every message from the queue in an unscheduled manner.

Insert every message into a database table, that has columns for the times you need in them.

Have a timeout node fire every minute or 30 seconds or whatever you can live with.

When the timeout node fires, get every message from the database that needs to be processed.
_________________
I am *not* the model of the modern major general.
Back to top
View user's profile Send private message
fjb_saper
PostPosted: Wed Dec 06, 2006 3:35 am    Post subject: Reply with quote

Grand High Poobah

Joined: 18 Nov 2003
Posts: 20756
Location: LI,NY

Review the overall design. If this is for some ERP like function let the ERP do the right scheduling. You just transport messages from A to B and if necessary transform them. You should in no way be involved in a "time delay" scheme.

If a time delay scheme is necessary it should not be the Bus's responsability but the application's responsability. You should then possibly have an SLA defined with the application...

Enjoy
_________________
MQ & Broker admin
Back to top
View user's profile Send private message Send e-mail
jefflowrey
PostPosted: Wed Dec 06, 2006 4:29 am    Post subject: Reply with quote

Grand Poobah

Joined: 16 Oct 2002
Posts: 19981

fjb_saper wrote:
If a time delay scheme is necessary it should not be the Bus's responsability but the application's responsability.


It can be argued that this is a common, reusable process, and so should be a service.

And since it is somewhat transport related, it could be considered a service in the ESB rather than in a particular application.
_________________
I am *not* the model of the modern major general.
Back to top
View user's profile Send private message
fjb_saper
PostPosted: Wed Dec 06, 2006 2:02 pm    Post subject: Reply with quote

Grand High Poobah

Joined: 18 Nov 2003
Posts: 20756
Location: LI,NY

Sure but the service as such is not an ESB service. Write the service provider to take advantage of the ESB as a transport and externalize it. Implement it via a DB by all means.

That app should be a service provider to the rest of the enterprise...

This is just my view....
_________________
MQ & Broker admin
Back to top
View user's profile Send private message Send e-mail
Display posts from previous:   
Post new topic  Reply to topic Page 1 of 1

MQSeries.net Forum Index » WebSphere Message Broker (ACE) Support » how to stop perticular message for perticular amount of time
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.