[jboss-dev-forums] [Design of Messaging on JBoss (Messaging/JBoss)] - Re: Client failover redeliveries discussion

ovidiu.feodorov@jboss.com do-not-reply at jboss.com
Thu Oct 26 05:17:53 EDT 2006


Tim wrote : 
  | I thought we had gone over all this already, but here goes again....
  | 
  |           ovidiu.feodorov at jboss.com wrote : 
  |   | A client may happen to be sending a message when the failure occurs. If the message is sent individually (not in the context of a transaction), then the on-going synchronous invocation is going to fail, the client code will catch the exception, and most likely will re-try to send the message,
  |   | 
  | 
  | What do you mean the "client code" will catch the exception?
  | Do you mean the application code?
  | If so, this is incorrect - JBoss Messaging failover is supposed to be automatic - this is one of our selling points.
  | Applications shouldn't have to catch connection exceptions and retry like in JBossMQ.
  | 
  |          Ovidiu wrote : 
  |   | If the client happens to send message in the context of a transaction when the failure occurs, we could either throw an exception, and discard everything, or go for the more elegant solution of transparently copying the transactional state (the corresponding TxState instance) into the new ResourceManager and send the messages over the new connection when transaction commits. We're probably not doing this right now, but this is what should be doing.
  |   | 
  | 
  | Same reasoning applies as previous comment. It should be transparent.
  | 




That is exactly what I am saying: "We're probably not doing this right now, but this is what should be doing."

To spell this out for you, so you won't go over is again: The current code, that is in the SVN, does not behave this way. This is understandable, it's just a prototype. I was going over the use cases for which we need test cases, so we can make sure the correct behavior is preserved in the future. The correct behavior is "transparently copying the transactional state (the corresponding TxState instance) into the new ResourceManager and send the messages over the new connection when transaction commits." Please note the use of the word "transparent".

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3980942#3980942

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3980942



More information about the jboss-dev-forums mailing list