Hi,

My context is very simple : execution errors of a Pojo are send to a jms
queue via an eip-pipeline. Errors are treated by a bean wich send a mail to
an external smtp server. 
All work fine but when I force an error in the mail bean treatment, message
dequeue is perfectly rollback but no redelivery delay is apply and the jms
consumer listener is immediatly recall. 
Is anyone have an idea to configure the redelivery delay ?



-- JMS EndPoint

<beans xmlns:jms="http://servicemix.apache.org/jms/1.0";
        xmlns:flpos="http://amix-tpv.com/flexpos";
        xmlns:amqpool="http://jencks.org/amqpool/2.0";
        xmlns:amq="http://activemq.org/config/1.0";>



    <bean id="propertyConfigurer"
       
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="location"
            value="classpath:flexpos_servicemix.ini" />
    </bean>

    <!-- Provider EP -->

        <jms:provider service="flpos:BackOfficeImportQueue"
                endpoint="jmsQueueProvider"
                destinationName="queue/flexPosBackOfficeData"
                connectionFactory="#connectionFactory" />


    <!-- Consumer EP -->

        <jms:consumer service="flpos:BackOfficeImportQueue"
                endpoint="jmsQueueConsumer"
                targetService="flpos:BackOfficeMailService" 
targetEndpoint="mail"

                transacted="jms" 
                synchronous="true" 
                listenerType="default"
                recoveryInterval="40000"
                
                destinationName="queue/flexPosBackOfficeData"
                connectionFactory="#connectionFactory" />


        <amq:connectionFactory id="connectionFactory"
        
brokerURL=""tcp://localhost:61616?jms.redeliveryPolicy.initialRedeliveryDelay=20000&amp;jms.redeliveryPolicy.maximumRedeliveries=-1""
/>

</beans>




-- Bean System Error Mailing


    /**
     * onMessageExchange : entry point for delivered messages
     */
    public void onMessageExchange(MessageExchange exchange) throws
MessagingException
    {
        if (exchange.getStatus() != ExchangeStatus.ACTIVE)
            return;

        try
        {
                // Process error messages
                .......

                // indicate message id done
                exchange.setStatus(ExchangeStatus.DONE);
                mChannel.send(exchange);

            }
        } catch (Exception e)
        {
            log.error("\nError to send mail : " + e.getMessage());
            throw new MessagingException(e);
        }
    }





-- 
View this message in context: 
http://www.nabble.com/Problems-with-JMS-recoveryInterval-%3A-It-seem-not-work-tp16218424s12049p16218424.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.

Reply via email to