[jboss-user] [Messaging, JMS & JBossMQ] - Re: XA Recovery of messages sent to a Topic

adrian@jboss.org do-not-reply at jboss.com
Fri May 30 10:48:15 EDT 2008


Ok, I see the problem. So there's two ways to fix it.

1) We come up with some mechanism where the ServerIL's transact() request
can vote READONLY in this case.

This would require a mixin interface like the Recovery interface
such that newer clients can take advantage of it.

i.e. something like

  | public interface NewTxProtocol
  | {
  |    TransactionResult transact2(ConnectionToken dc, TransactionRequest t) throws Exception;
  | }
  | 
  | with the necessary know on changes throughout the Invoker layer.
  | 
  | Then have the client side can use it (if the server side supports it)
  | 
  | org.jboss.mq.Connection;
  |    protected TransactionResult send(TransactionRequest transaction) throws JMSException
  |    {
  |       checkClosed();
  |       if (trace)
  |          log.trace("Transact request=" + transaction + " " + this);
  | 
  |       try
  |       {
  |          if (serverIL instanceof NewTxProtocol)
  |          {
  |             return serverIL.transact2(connectionToken, transaction);
  |          }
  |          else
  |          {
  |             serverIL.transact2(connectionToken, transaction);
  |             return null;
  |          }
  |       }
  |       catch (Throwable t)
  |       {
  |          SpyJMSException.rethrowAsJMSException("Cannot process a transaction", t);
  |       }
  |    }
  | 
  | 

2) We disable the lazy insert of the tx record in the jdbc2 persistence manager
when it is a real XID.

(2) is obviously easier, but it is not as efficient as (1).

I'll do (2) but do you want to have a go at trying to do (1) ?


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

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



More information about the jboss-user mailing list