You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@activemq.apache.org by ashoknan <as...@chase.com> on 2009/03/24 22:16:38 UTC
How to discard messages for the non-durable queue
I am using ActiveMQ 5.1..wanted to know how to discard messages for the
non-durable queue.
Trying to deal with slow consumer problem...Wanted to avoid Broker reaching
100%. When ever broker reaches 100% on the memory, everything stops.
Will discarding will avoid broker reaching 100% on the memory.
When the broker reaches 100% this what i see in the threaddump
"Thread-4" prio=6 tid=0x3e20d400 nid=0x128c waiting on condition
[0x3ec0f000..0x3ec0fa94]
java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x0b278ff8> (a
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
at
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1925)
at
java.util.concurrent.ArrayBlockingQueue.take(ArrayBlockingQueue.java:317)
at
org.apache.activemq.transport.FutureResponse.getResult(FutureResponse.java:40)
at
org.apache.activemq.transport.ResponseCorrelator.request(ResponseCorrelator.java:80)
at
org.apache.activemq.ActiveMQConnection.syncSendPacket(ActiveMQConnection.java:1195)
at org.apache.activemq.ActiveMQSession.send(ActiveMQSession.java:1644)
- locked <0x06be2688> (a java.lang.Object)
at
org.apache.activemq.ActiveMQMessageProducer.send(ActiveMQMessageProducer.java:227)
at org.apache.activemq.pool.PooledProducer.send(PooledProducer.java:74)
- locked <0x06be1008> (a org.apache.activemq.ActiveMQMessageProducer)
at org.apache.activemq.pool.PooledProducer.send(PooledProducer.java:59)
at org.springframework.jms.core.JmsTemplate.doSend(JmsTemplate.java:534)
at org.springframework.jms.core.JmsTemplate.doSend(JmsTemplate.java:511)
at org.springframework.jms.core.JmsTemplate$2.doInJms(JmsTemplate.java:477)
at org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:428)
at org.springframework.jms.core.JmsTemplate.send(JmsTemplate.java:475)
at org.springframework.jms.core.JmsTemplate.send(JmsTemplate.java:467)
at jmsexample.ExampleProducer.sendMessage(ExampleProducer.java:21)
at jmsexample.Bootstrap$1.run(Bootstrap.java:49)
at java.lang.Thread.run(Thread.java:619)
--
View this message in context: http://www.nabble.com/How-to-discard-messages-for-the-non-durable-queue-tp22689964p22689964.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.
Re: How to discard messages for the non-durable queue
Posted by ashoknan <as...@chase.com>.
Yes i tried that.
But it's going to ActiveMQ DLQ. How the messages from DLQ will be removed.
Do i have to write something to clear the DLQ.
Another thing i noticed is..when i set prefetch as 10 broker was able to
dispatch 2Million messages after that the broker memory % used reaching 100
then it hangs...when i set prefetch to 100 then i dont have any problem..it
was able to process 11M messages with out any issues. I am not sure why this
is the case.
" producerFlowControl="true">
Andreas Gies-3 wrote:
>
> Hi there
>
> have you considered to set a time to live on your messages.
> If you send messages NON_PERSISTENT that should work.
> If you send PERSISTENT messages, you should probably configure the
> DiscardingDLQBrokerPlugin as well.
>
>
> Best regards
> Andreas
>
> On Mar 24, 2009, at 10:16 PM, ashoknan wrote:
>
>>
>> I am using ActiveMQ 5.1..wanted to know how to discard messages for
>> the
>> non-durable queue.
>> Trying to deal with slow consumer problem...Wanted to avoid Broker
>> reaching
>> 100%. When ever broker reaches 100% on the memory, everything stops.
>>
>> Will discarding will avoid broker reaching 100% on the memory.
>>
>> When the broker reaches 100% this what i see in the threaddump
>>
>> "Thread-4" prio=6 tid=0x3e20d400 nid=0x128c waiting on condition
>> [0x3ec0f000..0x3ec0fa94]
>> java.lang.Thread.State: WAITING (parking)
>> at sun.misc.Unsafe.park(Native Method)
>> - parking to wait for <0x0b278ff8> (a
>> java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
>> at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
>> at
>> java.util.concurrent.locks.AbstractQueuedSynchronizer
>> $ConditionObject.await(AbstractQueuedSynchronizer.java:1925)
>> at
>> java.util.concurrent.ArrayBlockingQueue.take(ArrayBlockingQueue.java:
>> 317)
>> at
>> org
>> .apache
>> .activemq.transport.FutureResponse.getResult(FutureResponse.java:40)
>> at
>> org
>> .apache
>> .activemq
>> .transport.ResponseCorrelator.request(ResponseCorrelator.java:80)
>> at
>> org
>> .apache
>> .activemq.ActiveMQConnection.syncSendPacket(ActiveMQConnection.java:
>> 1195)
>> at org.apache.activemq.ActiveMQSession.send(ActiveMQSession.java:
>> 1644)
>> - locked <0x06be2688> (a java.lang.Object)
>> at
>> org
>> .apache
>> .activemq.ActiveMQMessageProducer.send(ActiveMQMessageProducer.java:
>> 227)
>> at org.apache.activemq.pool.PooledProducer.send(PooledProducer.java:
>> 74)
>> - locked <0x06be1008> (a org.apache.activemq.ActiveMQMessageProducer)
>> at org.apache.activemq.pool.PooledProducer.send(PooledProducer.java:
>> 59)
>> at org.springframework.jms.core.JmsTemplate.doSend(JmsTemplate.java:
>> 534)
>> at org.springframework.jms.core.JmsTemplate.doSend(JmsTemplate.java:
>> 511)
>> at org.springframework.jms.core.JmsTemplate
>> $2.doInJms(JmsTemplate.java:477)
>> at
>> org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:428)
>> at org.springframework.jms.core.JmsTemplate.send(JmsTemplate.java:
>> 475)
>> at org.springframework.jms.core.JmsTemplate.send(JmsTemplate.java:
>> 467)
>> at jmsexample.ExampleProducer.sendMessage(ExampleProducer.java:21)
>> at jmsexample.Bootstrap$1.run(Bootstrap.java:49)
>> at java.lang.Thread.run(Thread.java:619)
>>
>>
>>
>>
>>
>>
>> --
>> View this message in context:
>> http://www.nabble.com/How-to-discard-messages-for-the-non-durable-queue-tp22689964p22689964.html
>> Sent from the ActiveMQ - User mailing list archive at Nabble.com.
>>
>
> ---
> Mit freundlichen Grüssen - Kind Regards
> Andreas Gies
> Principal Consultant
> Open Source Center of Competence
>
> Progress Software GmbH
> Agrippinawerft 26
> 50678 Köln
>
> E-Mail agies@progress.com
> Direct Line +49 (0)9953 980349
> Mobile +49 (0)170 5759611
> Skype +44 (0)20 3239 2922
> Skype +353 (0)1 443 4971
> Skype +1 (0)781 262 0168
>
> http://www.progress.com
> http://fusesource.com
> http://open-source-adventures.blogspot.com
>
>
>
> -------------------------------------------------------
> Progress Software GmbH
> Sitz der Gesellschaft: Agrippinawerft 26, 50678 Koeln;
> Niederlassung: Fuerstenrieder Str. 279, 81377 Muenchen
> Amtsgericht Koeln, HRB 15620;
> Geschaeftsfuehrung: David Ireland
> -------------------------------------------------------
>
>
--
View this message in context: http://www.nabble.com/How-to-discard-messages-for-the-non-durable-queue-tp22689964p22710450.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.
Re: How to discard messages for the non-durable queue
Posted by Andreas Gies <ag...@progress.com>.
Hi there
have you considered to set a time to live on your messages.
If you send messages NON_PERSISTENT that should work.
If you send PERSISTENT messages, you should probably configure the
DiscardingDLQBrokerPlugin as well.
Best regards
Andreas
On Mar 24, 2009, at 10:16 PM, ashoknan wrote:
>
> I am using ActiveMQ 5.1..wanted to know how to discard messages for
> the
> non-durable queue.
> Trying to deal with slow consumer problem...Wanted to avoid Broker
> reaching
> 100%. When ever broker reaches 100% on the memory, everything stops.
>
> Will discarding will avoid broker reaching 100% on the memory.
>
> When the broker reaches 100% this what i see in the threaddump
>
> "Thread-4" prio=6 tid=0x3e20d400 nid=0x128c waiting on condition
> [0x3ec0f000..0x3ec0fa94]
> java.lang.Thread.State: WAITING (parking)
> at sun.misc.Unsafe.park(Native Method)
> - parking to wait for <0x0b278ff8> (a
> java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
> at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
> at
> java.util.concurrent.locks.AbstractQueuedSynchronizer
> $ConditionObject.await(AbstractQueuedSynchronizer.java:1925)
> at
> java.util.concurrent.ArrayBlockingQueue.take(ArrayBlockingQueue.java:
> 317)
> at
> org
> .apache
> .activemq.transport.FutureResponse.getResult(FutureResponse.java:40)
> at
> org
> .apache
> .activemq
> .transport.ResponseCorrelator.request(ResponseCorrelator.java:80)
> at
> org
> .apache
> .activemq.ActiveMQConnection.syncSendPacket(ActiveMQConnection.java:
> 1195)
> at org.apache.activemq.ActiveMQSession.send(ActiveMQSession.java:
> 1644)
> - locked <0x06be2688> (a java.lang.Object)
> at
> org
> .apache
> .activemq.ActiveMQMessageProducer.send(ActiveMQMessageProducer.java:
> 227)
> at org.apache.activemq.pool.PooledProducer.send(PooledProducer.java:
> 74)
> - locked <0x06be1008> (a org.apache.activemq.ActiveMQMessageProducer)
> at org.apache.activemq.pool.PooledProducer.send(PooledProducer.java:
> 59)
> at org.springframework.jms.core.JmsTemplate.doSend(JmsTemplate.java:
> 534)
> at org.springframework.jms.core.JmsTemplate.doSend(JmsTemplate.java:
> 511)
> at org.springframework.jms.core.JmsTemplate
> $2.doInJms(JmsTemplate.java:477)
> at
> org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:428)
> at org.springframework.jms.core.JmsTemplate.send(JmsTemplate.java:
> 475)
> at org.springframework.jms.core.JmsTemplate.send(JmsTemplate.java:
> 467)
> at jmsexample.ExampleProducer.sendMessage(ExampleProducer.java:21)
> at jmsexample.Bootstrap$1.run(Bootstrap.java:49)
> at java.lang.Thread.run(Thread.java:619)
>
>
>
>
>
>
> --
> View this message in context: http://www.nabble.com/How-to-discard-messages-for-the-non-durable-queue-tp22689964p22689964.html
> Sent from the ActiveMQ - User mailing list archive at Nabble.com.
>
---
Mit freundlichen Grüssen - Kind Regards
Andreas Gies
Principal Consultant
Open Source Center of Competence
Progress Software GmbH
Agrippinawerft 26
50678 Köln
E-Mail agies@progress.com
Direct Line +49 (0)9953 980349
Mobile +49 (0)170 5759611
Skype +44 (0)20 3239 2922
Skype +353 (0)1 443 4971
Skype +1 (0)781 262 0168
http://www.progress.com
http://fusesource.com
http://open-source-adventures.blogspot.com
-------------------------------------------------------
Progress Software GmbH
Sitz der Gesellschaft: Agrippinawerft 26, 50678 Koeln;
Niederlassung: Fuerstenrieder Str. 279, 81377 Muenchen
Amtsgericht Koeln, HRB 15620;
Geschaeftsfuehrung: David Ireland
-------------------------------------------------------
Re: How to discard messages for the non-durable queue
Posted by pclovec <pc...@gmail.com>.
Actual the discard function doesn't work. you also can refer to this post
http://www.nabble.com/Fast-producers%2Cslow-consumer...-queue-growing-forever-td22373306.html
ashoknan wrote:
>
> I am using ActiveMQ 5.1..wanted to know how to discard messages for the
> non-durable queue.
> Trying to deal with slow consumer problem...Wanted to avoid Broker
> reaching 100%. When ever broker reaches 100% on the memory, everything
> stops.
>
> Will discarding will avoid broker reaching 100% on the memory.
>
> When the broker reaches 100% this what i see in the threaddump
>
> "Thread-4" prio=6 tid=0x3e20d400 nid=0x128c waiting on condition
> [0x3ec0f000..0x3ec0fa94]
> java.lang.Thread.State: WAITING (parking)
> at sun.misc.Unsafe.park(Native Method)
> - parking to wait for <0x0b278ff8> (a
> java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
> at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
> at
> java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1925)
> at
> java.util.concurrent.ArrayBlockingQueue.take(ArrayBlockingQueue.java:317)
> at
> org.apache.activemq.transport.FutureResponse.getResult(FutureResponse.java:40)
> at
> org.apache.activemq.transport.ResponseCorrelator.request(ResponseCorrelator.java:80)
> at
> org.apache.activemq.ActiveMQConnection.syncSendPacket(ActiveMQConnection.java:1195)
> at org.apache.activemq.ActiveMQSession.send(ActiveMQSession.java:1644)
> - locked <0x06be2688> (a java.lang.Object)
> at
> org.apache.activemq.ActiveMQMessageProducer.send(ActiveMQMessageProducer.java:227)
> at org.apache.activemq.pool.PooledProducer.send(PooledProducer.java:74)
> - locked <0x06be1008> (a org.apache.activemq.ActiveMQMessageProducer)
> at org.apache.activemq.pool.PooledProducer.send(PooledProducer.java:59)
> at org.springframework.jms.core.JmsTemplate.doSend(JmsTemplate.java:534)
> at org.springframework.jms.core.JmsTemplate.doSend(JmsTemplate.java:511)
> at
> org.springframework.jms.core.JmsTemplate$2.doInJms(JmsTemplate.java:477)
> at org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:428)
> at org.springframework.jms.core.JmsTemplate.send(JmsTemplate.java:475)
> at org.springframework.jms.core.JmsTemplate.send(JmsTemplate.java:467)
> at jmsexample.ExampleProducer.sendMessage(ExampleProducer.java:21)
> at jmsexample.Bootstrap$1.run(Bootstrap.java:49)
> at java.lang.Thread.run(Thread.java:619)
>
>
>
>
>
>
>
--
View this message in context: http://www.nabble.com/How-to-discard-messages-for-the-non-durable-queue-tp22689964p22709581.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.