You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@activemq.apache.org by Maxim Grigoriev <da...@mail.ru> on 2006/09/28 18:07:54 UTC

Listener freezes on redelivery

i use 4.0.1 actovemq.
JMSFactory and Broker configuration:

<bean id="jmsFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
        <property name="brokerURL">
            <value>tcp://localhost:61616</value>
        </property>
        <property name="redeliveryPolicy">
            <bean class="org.apache.activemq.RedeliveryPolicy">
                <property name="initialRedeliveryDelay" value="100000"/>
                <property name="backOffMultiplier" value="4"/>
                <property name="useExponentialBackOff" value="false"/>
                <property name="maximumRedeliveries" value="5"/>
            </bean>
        </property>
    </bean>


<bean id="broker" class="org.apache.activemq.broker.BrokerService"
          init-method="start" destroy-method="stop">
        <property name="persistent" value="true"/>
        <property name="transportConnectorURIs">
            <list>
                <value>tcp://localhost:61616</value>
            </list>
        </property>
        <property name="persistenceAdapter">
            <bean id="myPersistenceAdapter"
                 
class="org.apache.activemq.store.PersistenceAdapterFactoryBean">
                <property name="useJournal" value="false"/>
                <property name="dataSource" ref="dataSource"/>
            </bean>
        </property>
        <property name="useJmx" value="false"/>
    </bean>

And here my listener configuration:

<bean id="listenerContainer"
         
class="org.springframework.jms.listener.DefaultMessageListenerContainer">
        <property name="concurrentConsumers" value="1"/>
        <property name="connectionFactory" ref="jmsFactory"/>
        <property name="destination" ref="destination"/>
        <property name="messageListener" ref="messageListener"/>
        <property name="sessionTransacted" value="true"/>
    </bean>

When Listener receives message and if there's an error then Listener throws
RuntimeException. This message should be redeliveried in
"initialRedeliveryDelay" ms. But in this situation Listener is freezed and
it doesn't process any other messages i. It waits "initialRedeliveryDelay"
ms and tries to process old redelivery message.
Is it bug or activemq feature ?
Because i expected that Listener processed other messages in queue and when
redelivery time came only then Listener processed redeliveried message. What
we have now - big queue growing and very low perfomance.

-- 
View this message in context: http://www.nabble.com/Listener-freezes-on--redelivery-tf2351835.html#a6549570
Sent from the ActiveMQ - User mailing list archive at Nabble.com.


Re: Listener freezes on redelivery

Posted by James Strachan <ja...@gmail.com>.
On 9/28/06, Maxim Grigoriev <da...@mail.ru> wrote:
>
> It's not a way.
> Some messages can be processed in an hour and if i make only one redeliver
> i'll lose such messages.

They go on the dead letter queue when they've failed.

> Can i just turn off ordering and then activemq will deliver other messages
> and will not wait for redeliver message ?

Currently no but we welcome contributions...
http://incubator.apache.org/activemq/contributing.html

-- 

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

Re: Listener freezes on redelivery

Posted by Maxim Grigoriev <da...@mail.ru>.
It's not a way.
Some messages can be processed in an hour and if i make only one redeliver
i'll lose such messages.
Can i just turn off ordering and then activemq will deliver other messages
and will not wait for redeliver message ?


James.Strachan wrote:
> 
> Use a small timeout of redelivery and only redeliver once?
> 
> On 9/28/06, Maxim Grigoriev <da...@mail.ru> wrote:
>>
>> is there way to disable this feature ?
>> Because i don't care about ordering and i need that Listener processes
>> other
>> messages.
>>
>>
>> James.Strachan wrote:
>> >
>> > To avoid breaking order, we process redelivered messages first before
>> > other mesages are processed on the listener.
>> >
>>
>> --
>> View this message in context:
>> http://www.nabble.com/Listener-freezes-on--redelivery-tf2351835.html#a6550585
>> Sent from the ActiveMQ - User mailing list archive at Nabble.com.
>>
>>
> 
> 
> -- 
> 
> James
> -------
> http://radio.weblogs.com/0112098/
> 
> 

-- 
View this message in context: http://www.nabble.com/Listener-freezes-on--redelivery-tf2351835.html#a6550885
Sent from the ActiveMQ - User mailing list archive at Nabble.com.


Re: Listener freezes on redelivery

Posted by James Strachan <ja...@gmail.com>.
Use a small timeout of redelivery and only redeliver once?

On 9/28/06, Maxim Grigoriev <da...@mail.ru> wrote:
>
> is there way to disable this feature ?
> Because i don't care about ordering and i need that Listener processes other
> messages.
>
>
> James.Strachan wrote:
> >
> > To avoid breaking order, we process redelivered messages first before
> > other mesages are processed on the listener.
> >
>
> --
> View this message in context: http://www.nabble.com/Listener-freezes-on--redelivery-tf2351835.html#a6550585
> Sent from the ActiveMQ - User mailing list archive at Nabble.com.
>
>


-- 

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

Re: Listener freezes on redelivery

Posted by Maxim Grigoriev <da...@mail.ru>.
is there way to disable this feature ?
Because i don't care about ordering and i need that Listener processes other
messages.


James.Strachan wrote:
> 
> To avoid breaking order, we process redelivered messages first before
> other mesages are processed on the listener.
> 

-- 
View this message in context: http://www.nabble.com/Listener-freezes-on--redelivery-tf2351835.html#a6550585
Sent from the ActiveMQ - User mailing list archive at Nabble.com.


Re: Listener freezes on redelivery

Posted by James Strachan <ja...@gmail.com>.
To avoid breaking order, we process redelivered messages first before
other mesages are processed on the listener.

On 9/28/06, Maxim Grigoriev <da...@mail.ru> wrote:
>
> i use 4.0.1 actovemq.
> JMSFactory and Broker configuration:
>
> <bean id="jmsFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
>         <property name="brokerURL">
>             <value>tcp://localhost:61616</value>
>         </property>
>         <property name="redeliveryPolicy">
>             <bean class="org.apache.activemq.RedeliveryPolicy">
>                 <property name="initialRedeliveryDelay" value="100000"/>
>                 <property name="backOffMultiplier" value="4"/>
>                 <property name="useExponentialBackOff" value="false"/>
>                 <property name="maximumRedeliveries" value="5"/>
>             </bean>
>         </property>
>     </bean>
>
>
> <bean id="broker" class="org.apache.activemq.broker.BrokerService"
>           init-method="start" destroy-method="stop">
>         <property name="persistent" value="true"/>
>         <property name="transportConnectorURIs">
>             <list>
>                 <value>tcp://localhost:61616</value>
>             </list>
>         </property>
>         <property name="persistenceAdapter">
>             <bean id="myPersistenceAdapter"
>
> class="org.apache.activemq.store.PersistenceAdapterFactoryBean">
>                 <property name="useJournal" value="false"/>
>                 <property name="dataSource" ref="dataSource"/>
>             </bean>
>         </property>
>         <property name="useJmx" value="false"/>
>     </bean>
>
> And here my listener configuration:
>
> <bean id="listenerContainer"
>
> class="org.springframework.jms.listener.DefaultMessageListenerContainer">
>         <property name="concurrentConsumers" value="1"/>
>         <property name="connectionFactory" ref="jmsFactory"/>
>         <property name="destination" ref="destination"/>
>         <property name="messageListener" ref="messageListener"/>
>         <property name="sessionTransacted" value="true"/>
>     </bean>
>
> When Listener receives message and if there's an error then Listener throws
> RuntimeException. This message should be redeliveried in
> "initialRedeliveryDelay" ms. But in this situation Listener is freezed and
> it doesn't process any other messages i. It waits "initialRedeliveryDelay"
> ms and tries to process old redelivery message.
> Is it bug or activemq feature ?
> Because i expected that Listener processed other messages in queue and when
> redelivery time came only then Listener processed redeliveried message. What
> we have now - big queue growing and very low perfomance.
>
> --
> View this message in context: http://www.nabble.com/Listener-freezes-on--redelivery-tf2351835.html#a6549570
> Sent from the ActiveMQ - User mailing list archive at Nabble.com.
>
>


-- 

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