[jboss-user] [JCA/JBoss] - Redelivering messages

pepite do-not-reply at jboss.com
Thu Sep 13 07:33:56 EDT 2007


I have a small problem with Redelivering messages. 

I am using jboss 4.0.5. 

I have looked at bug EJBTHREE-783 and backported the changes from 4.2.1ga to the 4.0.5 branch. 

However, when looking at the code, I came across the following part, in org.jboss.ejb.plugins.inflow.JBossMessageEndpointFactory:




  | 
  | public boolean isDeliveryTransacted(Method method) throws NoSuchMethodException
  |    {
  |       boolean result = false;
  |       int transType = metaData.getMethodTransactionType(method.getName(), method.getParameterTypes(), InvocationType.LOCAL);
  |       if (transType == MetaData.TX_REQUIRED)
  |          result = true;
  |       if (trace)
  |          log.trace("isDeliveryTransacted " + container.getBeanMetaData().getContainerObjectNameJndiName() + " method=" + method + " result=" + result);
  |       return result;
  |    }
  | 
  | 

I am a bit surprised by this method. What about TX_MANDATORY, TX_REQUIRES_NEW, and TX_SUPPORT? 

I guess that the delivery is transacted if we are using any of these states. 

Currently messages do not get rollback and requeued if the transaction type is other than REQUIRED. I don't think that's correct. They should be requeued as well for other transaction types.

What there a logic behind this? I may I reopen EJBTHREE-783?

Thanks,

Nicolas Leroux

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

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



More information about the jboss-user mailing list