Has there been any work on JBossMQ message redelivery recently?

I have an MDB, which has all of its methods set to NotSupported, using a
custom container-configuration, which only allows one message to be
processed at a time (jboss dd attached).

It processes a message, which could take longer than the TX timeout, so I it
can not run inside of a TX.

I am still getting warnings:

  WARN  org.jboss.tm.TxCapsule [Thread-8] () - Transaction XidImpl
  [FormatId=257, GlobalId=eng-ecr4a//0, BranchQual=] timed out.
  status=STATUS_ACTIVE

For each warning the message being processes seems to reapear back into the
queue, though Message.getJMSRedelivered() will never return true.

This is running in JBoss pre-3.0, which was built very shortly before the RH
bit were commited, so it may be possible that this have been fixed in newer
versions?  I did not seen any change logs, specific to this, so I think that
it might be a bug in HEAD too.

So, the first question is why does an MDB with NotSupported cause TX
timeouts?

Second, why does a message get redelivered to my MDB, but does not have its
getJMSRedelivered() set to true?

--jason
<?xml version="1.0"?>
<!-- $Id: //depot/eng/does/main/src/metadata/ejb/workerinvoker-jboss.xml#9 $ -->

<jboss>
    <secure>false</secure>

    <!-- ================================================================= -->
    <!-- Container Configurations                                          -->
    <!-- ================================================================= -->

    <container-configurations>
      <container-configuration>
	<container-name>Custom MDB</container-name>
	<call-logging>false</call-logging>
	<container-invoker>org.jboss.ejb.plugins.jms.JMSContainerInvoker</container-invoker>
	<container-interceptors>
	  <interceptor>org.jboss.ejb.plugins.LogInterceptor</interceptor>
	  <interceptor>org.jboss.ejb.plugins.SecurityInterceptor</interceptor>
	  <!-- CMT -->
	  <interceptor transaction="Container">org.jboss.ejb.plugins.TxInterceptorCMT</interceptor>
	  <interceptor transaction="Container" metricsEnabled="true">org.jboss.ejb.plugins.MetricsInterceptor</interceptor>
	  <interceptor transaction="Container">org.jboss.ejb.plugins.MessageDrivenInstanceInterceptor</interceptor>
	  <!-- BMT -->
	  <interceptor transaction="Bean">org.jboss.ejb.plugins.MessageDrivenInstanceInterceptor</interceptor>
	  <interceptor transaction="Bean">org.jboss.ejb.plugins.MessageDrivenTxInterceptorBMT</interceptor>
	  <interceptor transaction="Bean" metricsEnabled="true">org.jboss.ejb.plugins.MetricsInterceptor</interceptor>
	</container-interceptors>
	<instance-pool>org.jboss.ejb.plugins.MessageDrivenInstancePool</instance-pool>
	<instance-cache></instance-cache>
	<persistence-manager></persistence-manager>
	<transaction-manager>org.jboss.tm.TxManager</transaction-manager>

	<container-invoker-conf>
	  <JMSProviderAdapterJNDI>DefaultJMSProvider</JMSProviderAdapterJNDI>
	  <ServerSessionPoolFactoryJNDI>StdJMSPool</ServerSessionPoolFactoryJNDI>
	  <MaximumSize>1</MaximumSize>
	  <MaxMessages>1</MaxMessages>
	  <Optimized>True</Optimized>
	</container-invoker-conf>

	<container-pool-conf>
	  <MaximumSize>50</MaximumSize>
	  <MinimumSize>5</MinimumSize>
	</container-pool-conf>
      </container-configuration>
    </container-configurations>


    <!-- ================================================================ -->
    <!-- Resource Managers                                                -->
    <!-- ================================================================ -->
    
    <resource-managers>
      <resource-manager>
	<res-name>QueueConnectionFactory</res-name>
        <!-- HACK temporary-->
	<res-jndi-name>@expnet.jms.provider.shared.url@[EMAIL PROTECTED]@</res-jndi-name>
	<!-- <res-jndi-name>java:/JmsXA</res-jndi-name> -->
      </resource-manager>
      
      <resource-manager>
	<res-name>WorkResponseQueue</res-name>
	<res-jndi-name>@expnet.jms.provider.shared.url@/queue/WorkResponseQueue</res-jndi-name>
      </resource-manager>
    </resource-managers>

  
    <!-- ================================================================= -->
    <!-- Enterprise Beans                                                  -->
    <!-- ================================================================= -->

    <enterprise-beans>

      <!-- =============================================================== -->
      <!-- WorkerInvoker                                                   -->
      <!-- =============================================================== -->

      <message-driven>
	<ejb-name>WorkerInvoker</ejb-name>
	<configuration-name>Custom MDB</configuration-name>
	<destination-jndi-name>queue/WorkRequestQueue</destination-jndi-name>
	<!-- <mdb-user>workerinvoker</mdb-user> -->
	<!-- <mdb-passwd>workerinvoker</mdb-passwd> -->

	<resource-ref>
	  <res-ref-name>jms/QueueConnectionFactory</res-ref-name>
	  <resource-name>QueueConnectionFactory</resource-name>
	</resource-ref>

	<resource-ref>
	  <res-ref-name>jms/WorkResponseQueue</res-ref-name>
	  <resource-name>WorkResponseQueue</resource-name>
	</resource-ref>
      </message-driven>

    </enterprise-beans>
</jboss>
  

Reply via email to