On 5/1/06, Litton, Tom - CEPM <[EMAIL PROTECTED]> wrote:
I have a few questions about how messages get redelivered. I'm using an 
embedded broker (in tomcat).  The version is 4.0 RC3.

1.  How do you configure the redelivery delay for all queues.  Right now i have 
the configuration:
    <destinationPolicy>
      <policyMap>
        <policyEntries>
          <policyEntry queue="*">
            <redeliveryPolicy initialRedeliveryDelay="10000" useExponentialBackOff="true" 
backOffMultiplier="5" maximumRedeliveries="5" />
          </policyEntry>

        </policyEntries>
      </policyMap>
    </destinationPolicy>

But it seems to have no effect.  The redelivery delay is still 1 second.  Should I specify 
">" or "*.>" for all queues?

Use > for all queues.

I'm guesing the queue name has a dot in it right?


 I'm setting the XML file location using the property brokerXmlConfig and 
calling the method ActiveMQConnectionFactory.setProperties.  Does this still 
work in 4.0?

No, I'm afraid not.

The best way to create an embedded broker from an XML configuration
file is to either use the BrokerFactoryBean in your spring.xml or just
use the BrokerService POJO directly

http://activemq.org/How+do+I+embed+a+Broker+inside+a+Connection


2.  The redelivery policy seems to take effect on calls to Session.recover and 
Session.rollback.  What happens to the unacknowledged messages if neither of 
those methods get called?  Will they ever get redelivered before the broker is 
restarted?

Yes - redelivery happens when a session is closed (or a client
disconnects) - then any messages delivered to a consumer/session that
are not acknowledged will get redelivered.

Using the inactivity monitor, you can get the broker to kill any
'hung' clients to ensure messages are redelivered promptly if a client
locks up.

--

James
-------
http://radio.weblogs.com/0112098/

Reply via email to