activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From joeleclems <joelecl...@free.fr>
Subject activemq.xml Embedded Tomee redeliveryDelay
Date Fri, 09 Jan 2015 16:15:30 GMT
Hi,

I'm trying to apply redelivery policy to message posted in activemq. I'm
using tomee+ 1.7.0 (with activemq 5.10.0) and i use an external
configuration file (activemq.xml).
I follow the online documentation
(http://activemq.apache.org/message-redelivery-and-dlq-handling.html), but
the redelivery policy is not used at all!
This is my activemq.xml :
/<beans ...>
  <broker xmlns="http://activemq.apache.org/schema/core" useJmx="true"
start="true" brokerName="PMBrokerConfXml" schedulerSupport="true"
persistent="true">
        <destinationPolicy>
                <policyMap>
                  <policyEntries>
                        <policyEntry queue=">" producerFlowControl="true" >
                                <deadLetterStrategy>
                                <individualDeadLetterStrategy
                                  queuePrefix="ERROR."
useQueueForQueueMessages="true" />
                          </deadLetterStrategy>
                        </policyEntry>
                  </policyEntries>
                </policyMap>
        </destinationPolicy>

        <plugins xmlns="http://activemq.apache.org/schema/core">
                <redeliveryPlugin fallbackToDeadLetter="true"
sendToDlqIfMaxRetriesExceeded="true">
                  <redeliveryPolicyMap >
                        <redeliveryPolicyMap>
*                         
                          <defaultEntry>
                                <redeliveryPolicy
initialRedeliveryDelay="5000"
                                                                       
redeliveryDelay="3000"
                                                                       
maximumRedeliveries="3"
                                                                       
maximumRedeliveryDelay="14400000"
                                                                       
backOffMultiplier="2"
                                                                       
useExponentialBackOff="true"/>*
                          </defaultEntry>
                        </redeliveryPolicyMap>
                  </redeliveryPolicyMap>
                </redeliveryPlugin>
        </plugins>

    <persistenceAdapter>
      <kahaDB directory="D:/apache-tomee-1.7.0-plus/jmsdata/kahadb"
indexCacheSize="20000" ignoreMissingJournalfiles="true"
checkForCorruptJournalFiles="true" checksumJournalFiles="true"/>
    </persistenceAdapter>

   
    <transportConnectors>
                <transportConnector uri="tcp://localhost:61616" />
        </transportConnectors> 

        <systemUsage>
                <systemUsage>
                        <memoryUsage>
                                <memoryUsage limit="64 mb"/>
                        </memoryUsage>
                        <storeUsage>
                                <storeUsage limit="100 gb"/>
                        </storeUsage>
                        <tempUsage>
                                <tempUsage limit="50 gb"/>
                        </tempUsage>
                </systemUsage>
        </systemUsage>
               
        <shutdownHooks>
                <bean xmlns="http://www.springframework.org/schema/beans"
class="org.apache.activemq.hooks.SpringContextHook" />
        </shutdownHooks>
               
  </broker>
</beans>/

What's working :
 - i can send message to activemq
 - i can see theses messages in activemq webconsole
 - i can consume message
 - When i send a "transaction rollback" during message consuming, after 6
try, messages are sent to "ERROR.[QueueName]" queue

What's not working :
 - all the redeliveryPolicy is not used...
This is the dlqDeliveryFailureCause  i can see in the error queue on a
message:
java.lang.Throwable: Exceeded redelivery policy limit:RedeliveryPolicy
{destination = null, collisionAvoidanceFactor = 0.15, maximumRedeliveries =
6, maximumRedeliveryDelay = -1, initialRedeliveryDelay = 1000,
useCollisionAvoidance = false, useExponentialBackOff = false,
backOffMultiplier = 5.0, redeliveryDelay = 1000}, cause:null

None of the redeliveryPolicy attribute is used.

Did i make any configuration mistake?

Clue : redeliveryPlugin is used. If i set "fallbackToDeadLetter" and
"sendToDlqIfMaxRetriesExceeded" to false, message in errors disappears (they
are not put into an error queue).

Thanks in advance

Clément




--
View this message in context: http://activemq.2283324.n4.nabble.com/activemq-xml-Embedded-Tomee-redeliveryDelay-tp4689728.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.

Mime
View raw message