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 » General Discussion » Recover last put made to a queue from a client app

Post new topic  Reply to topic
 Recover last put made to a queue from a client app « View previous topic :: View next topic » 
Author Message
mgarciashiers
PostPosted: Mon Oct 19, 2015 12:32 am    Post subject: Recover last put made to a queue from a client app Reply with quote

Newbie

Joined: 27 May 2015
Posts: 3

Is there any way to know which is the last message sent to a queue from a client App.
The scenario is as follows:

1.- Client App puts message in the queue
2.- Another Client App is getting the messages.
3.- The Client App that puts crash
4.- Client App continues getting the messages.
5.- When the Client App recovers wants to know which was the last put message in the Queue

thxs for your help
Back to top
View user's profile Send private message
exerk
PostPosted: Mon Oct 19, 2015 12:38 am    Post subject: Reply with quote

Jedi Council

Joined: 02 Nov 2006
Posts: 6339

The application audit logs should tell you, or if you have a transaction-level monitoring solution that will tell you, but MQ can't tell you other than the last put/get time on a queue.

Your question makes me wonder why, if it is so important for the 'Client App' to know, that it does not record that information somewhere?
_________________
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
mgarciashiers
PostPosted: Mon Oct 19, 2015 1:09 am    Post subject: Reply with quote

Newbie

Joined: 27 May 2015
Posts: 3

Example:
Finantial instruction that cannot be repeated so i want to be sure that the message was in the queue so i dont have to send it again
Back to top
View user's profile Send private message
exerk
PostPosted: Mon Oct 19, 2015 1:29 am    Post subject: Reply with quote

Jedi Council

Joined: 02 Nov 2006
Posts: 6339

mgarciashiers wrote:
Example:
Finantial instruction that cannot be repeated so i want to be sure that the message was in the queue so i dont have to send it again

If the message cannot be repeated then your putting application needs to maintain an audit of what it has, or has not, done. This is an application problem, not an MQ problem.
_________________
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
mgarciashiers
PostPosted: Mon Oct 19, 2015 1:42 am    Post subject: Reply with quote

Newbie

Joined: 27 May 2015
Posts: 3

Sure, but i´ve and scenario in which i dont know how to handdle, any help will be appreciated.

scenario 1
1.- Client App get message from database
2.- Client App Puts mesagge in a Queue
3.- Client App Commit the put in database
4.- Client App Commit to MqServer

Between 3 and 4 Client App crash for database msg is sent but is not

Scenerio 2

1.- Client App get message from database
2.- Client App Puts mesagge in a Queue
3.- Client App Commit to MqServer
4.- Client App Commit the put in database

Between 2 and 4 Client App crash the message is sent but for database is not
Back to top
View user's profile Send private message
smdavies99
PostPosted: Mon Oct 19, 2015 2:10 am    Post subject: Reply with quote

Jedi Council

Joined: 10 Feb 2003
Posts: 6076
Location: Somewhere over the Rainbow this side of Never-never land.

This is where XA comes into its own (provided this is possible)

The neverything is done under the same UOW and the DB commit is not done until the MQ Commis is done and vice versa.
_________________
WMQ User since 1999
MQSI/WBI/WMB/'Thingy' User since 2002
Linux user since 1995

Every time you reinvent the wheel the more square it gets (anon). If in doubt think and investigate before you ask silly questions.
Back to top
View user's profile Send private message
exerk
PostPosted: Mon Oct 19, 2015 2:13 am    Post subject: Reply with quote

Jedi Council

Joined: 02 Nov 2006
Posts: 6339

Scenario 1 and Scenario 2: The read from and update of the database, and put/get of the message should be wrapped into the same unit of work, which means should either of the operations fail a roll-back will occur, i.e. the database will not be updated and the message will never have been put.

If your Client App is connecting to the queue manager in bindings mode (cross-memory), or client mode (network), you need to set up the queue manager to participate in a distributed Unit of Work, and of course the applications need to be coded appropriately.
_________________
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
fjb_saper
PostPosted: Mon Oct 19, 2015 4:27 am    Post subject: Reply with quote

Grand High Poobah

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

mgarciashiers wrote:
Sure, but i´ve and scenario in which i dont know how to handdle, any help will be appreciated.

scenario 1
1.- Client App get message from database
2.- Client App Puts mesagge in a Queue
3.- Client App Commit the put in database
4.- Client App Commit to MqServer

Between 3 and 4 Client App crash for database msg is sent but is not

Scenerio 2

1.- Client App get message from database
2.- Client App Puts mesagge in a Queue
3.- Client App Commit to MqServer
4.- Client App Commit the put in database

Between 2 and 4 Client App crash the message is sent but for database is not

As said the solution is to put everything into the same unit of work.
In the meantime...
There is an application consuming these messages... and there should be some kind of ability to verify...
a) what is the last message marked as processed in the DB
b) what is the consumer reporting as last message processed

And go from there.
_________________
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 » General Discussion » Recover last put made to a queue from a client app
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.