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 » IBM MQ Java / JMS » MQJMS2007 / mqrc: 2009 -error from .send(), but msg in Q

Post new topic  Reply to topic Goto page Previous  1, 2
 MQJMS2007 / mqrc: 2009 -error from .send(), but msg in Q « View previous topic :: View next topic » 
Author Message
mvic
PostPosted: Fri Jan 20, 2006 8:34 am    Post subject: Reply with quote

Jedi

Joined: 09 Mar 2004
Posts: 2080

OK I'll stop defending a scheme that I dreamt up in 1/2 hour

There are obviously issues with the original design, but I think it is useful insofar as it provides an audit trail mechanism.

I think we are agreed (??) that reconciliation or fault-tolerant error handling is possible only if there is an audit trail.

What better audit trail mechanisms are there? (Remember the audit trail must have one and only one entry for each message that was put to the app queue...)
Back to top
View user's profile Send private message
jefflowrey
PostPosted: Fri Jan 20, 2006 8:53 am    Post subject: Reply with quote

Grand Poobah

Joined: 16 Oct 2002
Posts: 19981

I think I was clear that an audit trail as you described it, is not necessarily the only tool for reconciliation.

If messages have unique business identifiers, and downstream processing logs those identifiers, then as long as we know the ids in the in doubt messages, we can resolve the doubt without an audit trail as you described.

In ESB-like systems I've built, I put a message archiving service at the front door of the ESB - everything that came in was archived. Then all my ESB infrastructure merely logged what it had done with messages and logged the unique IDs of the messages that it had handled. And the downstream processes could actually discard messages if they thought that they could not ever be processed.

Messages that needed to be replayed for whatever reason were recovered from the archive and resent at the front door, with new unique IDs (but correlated to the old ID's).
_________________
I am *not* the model of the modern major general.
Back to top
View user's profile Send private message
mvic
PostPosted: Fri Jan 20, 2006 9:07 am    Post subject: Reply with quote

Jedi

Joined: 09 Mar 2004
Posts: 2080

jefflowrey wrote:
I think I was clear that an audit trail as you described it, is not necessarily the only tool for reconciliation.
...

There must be an audit trail of some description, surely?

I note you go on to mention "downstream processing logs", "message archiving service at the front door of the ESB", logging, and an archive.

In the terminology I am used to, these are other ways of saying "audit trail".

A quick question on your experience of setting this up: what does a client do in a system like the one you've described if, because of a network outage, there is some doubt (eg. a 2009 from put or commit) over whether the message was successfully placed on the queue at the server?
Back to top
View user's profile Send private message
jefflowrey
PostPosted: Fri Jan 20, 2006 10:42 am    Post subject: Reply with quote

Grand Poobah

Joined: 16 Oct 2002
Posts: 19981

Yes, there must be an audit trail of some type or another. But your description was distinct in that, presumably, every message producer was copying all messages to two queues.

The behavior of a client outside the ESB system I was describing would do exactly what I suggested. Write a log to a file or something that contained enough information about both the exception that occurred and the business data involved to be able to restore the transaction if neccessary, and then retry the connection for a short period of time and then halt.

Inside the ESB system I described, the application could choose to merely record the exception data and unique ids of the message, trusting that the acrhive contained a record of the message.

And the archive system itself would use a two-phase unit of work (and a bindings connection) to ensure that messages were either on the queue or in the database.
_________________
I am *not* the model of the modern major general.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic  Reply to topic Goto page Previous  1, 2 Page 2 of 2

MQSeries.net Forum Index » IBM MQ Java / JMS » MQJMS2007 / mqrc: 2009 -error from .send(), but msg in Q
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.