activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Rob Davies <rajdav...@gmail.com>
Subject Re: Out Of Memory Error while running TopicPublisher/TopicListener
Date Wed, 17 Sep 2008 15:44:49 GMT
er - we need to update the xsd  ;)
5.2 has not been released yet - Gary Tully who was doing the release  
is on vacation for a two weeks - but I think we'll need a new RC

cheers,

Rob
On 17 Sep 2008, at 15:51, Badri wrote:

>
> Thanks Rob for info.
>
> Does the tag advisoryForSlowConsumers be used in policyEntry?
>
> I could see 2 tags for advisory - advisorySupport &
> sendAdvisoryIfNoConsumers in the activemq-core-5.2.xsd. I just  
> referred to
> activemq-core-5.2-SNAPSHOT.xsd & did not find tag  
> advisoryForSlowConsumers.
> Not sure if I am looking at wrong place.
>
> Where can I find the xsd & source files?
> All mirror sites were giving me 404 when I wanted to download the 5.2
> source.
> http://www.apache.org/dist/activemq/apache-activemq/ does not have 5.2
> branch. I am guessing that the 5.2 has not yet been promoted.
>
>
>
>
>
>
> rajdavies wrote:
>>
>> Your client is running foul of the topic prefetch - either use more
>> memory (as you've suggested) - or use a smaller prefetch - see
>> http://activemq.apache.org/what-is-the-prefetch-limit-for.html.
>>
>> The slow consumer advisory will be generated from the broker when  
>> this
>> limit is reached - but only if enabled (its off by default)
>>
>> To enable it - use a DestinationPolicy - see
>> http://activemq.apache.org/per-destination-policies.html
>> The documentation here needs updating - but the property you need to
>> set is advisoryForSlowConsumers
>>
>> cheers,
>>
>> Rob
>>
>> Rob Davies
>> http://rajdavies.blogspot.com/
>>
>>
>> On 16 Sep 2008, at 22:01, Badri wrote:
>>
>>>
>>> I am running broker, publisher, consumer all in Windows.
>>> I have not tried this in Linux.
>>> The broker & publisher are working fine. It's the consumer which is
>>> crashing. Removing Thread.sleep(1000), consumer works fine. It did
>>> not crash
>>> for a good amount of time before I manually stopped the  
>>> TopicListener.
>>>
>>> Windows XP Professional with SP2, 2GB RAM.
>>> Java: 1.6.0_06
>>>
>>> Of course this was my first test to simulate slow consumer & also
>>> see if the
>>> advisory topic appears in the web console. So I used my desktop &
>>> stumbled
>>> across this memory error. I just felt maybe crash could be due to
>>> using
>>> Windows. I intend to do the same test in Linux.
>>>
>>>
>>> bsnyder wrote:
>>>>
>>>> On Tue, Sep 16, 2008 at 10:33 AM, Badri
>>>> <badrinarayanan.doraiswamy@fxall.com> wrote:
>>>>>
>>>>> Hi
>>>>>
>>>>> I am trying to simulate slow consumer using the classes
>>>>> (TopicPublisher/TopicListener) provided in examples.
>>>>>
>>>>> I wanted to see if Web Console prints the Advisory topic for Slow
>>>>> Consumer.
>>>>> But I am facing Out Of Memory Error & the consumer stops abruptly.
>>>>>
>>>>> Following are changes I did:
>>>>>
>>>>> activemq.xml:
>>>>>
>>>>>      <transportConnectors>
>>>>>          <transportConnector name="openwire"
>>>>> uri="tcp://localhost:61616?maxInactivityDuration=-1"/>
>>>>>      </transportConnectors>
>>>>>
>>>>>
>>>>> TopicListener: I added a sleep of 1000 to induce some slowness.
>>>>>          if (++count % 1000 == 0) {
>>>>>              System.out.println("Received " + count + "
>>>>> messages.");
>>>>>                              try
>>>>>                              {
>>>>>                                      Thread.sleep(1000);
>>>>>                              }
>>>>>                              catch (Exception e)
>>>>>                              {
>>>>>
>>>>>                              }
>>>>>          }
>>>>>
>>>>> I give java -Xmx256m -Xms128m when using TopicListener.
>>>>> After maybe 5 minutes it crashes. After receiving anywhere between
>>>>> 15-20
>>>>> batches of 1000 messages, it crashes.
>>>>>
>>>>> Exception:
>>>>> Received 9000 messages.
>>>>> Received 10000 messages.
>>>>> javax.jms.JMSException: Unexpected error occured
>>>>>      at
>>>>> org
>>>>> .apache.activemq.util.JMSExceptionSupport.create(JMSExceptionSuppo
>>>>> rt.java:62)
>>>>>      at
>>>>> org
>>>>> .apache.activemq.ActiveMQConnection.syncSendPacket(ActiveMQConnect
>>>>> ion.java:1255)
>>>>>      at
>>>>> org.apache.activemq.ActiveMQSession.send(ActiveMQSession.java: 
>>>>> 1659)
>>>>>      at
>>>>> org
>>>>> .apache.activemq.ActiveMQMessageProducer.send(ActiveMQMessageProdu
>>>>> cer.java:227)
>>>>>      at
>>>>> org
>>>>> .apache.activemq.ActiveMQMessageProducerSupport.send(ActiveMQMessa
>>>>> geProducerSupport.java:241)
>>>>>      at TopicListener.onMessage(TopicListener.java:96)
>>>>>      at
>>>>> org
>>>>> .apache.activemq.ActiveMQMessageConsumer.dispatch(ActiveMQMessageC
>>>>> onsumer.java:983)
>>>>>      at
>>>>> org
>>>>> .apache.activemq.ActiveMQSessionExecutor.dispatch(ActiveMQSessionE
>>>>> xecutor.java:122)
>>>>>      at
>>>>> org
>>>>> .apache.activemq.ActiveMQSessionExecutor.iterate(ActiveMQSessionEx
>>>>> ecutor.java:192)
>>>>>      at
>>>>> org
>>>>> .apache.activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.
>>>>> java:122)
>>>>>      at
>>>>> org.apache.activemq.thread.PooledTaskRunner
>>>>> $1.run(PooledTaskRunner.ja
>>>>> va:43)
>>>>>      at
>>>>> java.util.concurrent.ThreadPoolExecutor
>>>>> $Worker.runTask(ThreadPoolExec
>>>>> utor.java:885)
>>>>>      at
>>>>> java.util.concurrent.ThreadPoolExecutor
>>>>> $Worker.run(ThreadPoolExecutor
>>>>> .java:907)
>>>>>      at java.lang.Thread.run(Thread.java:619)
>>>>> Caused by: java.io.IOException: Unexpected error occured
>>>>>      at
>>>>> org
>>>>> .apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:
>>>>> 191)
>>>>>      ... 1 more
>>>>> Caused by: java.lang.OutOfMemoryError: Java heap space
>>>>>      at
>>>>> org
>>>>> .apache.activemq.openwire.v3.BaseDataStreamMarshaller.tightUnmarsh
>>>>> alByteSequence(BaseDataStreamMarshaller.java:440)
>>>>>      at
>>>>> org
>>>>> .apache.activemq.openwire.v3.MessageMarshaller.tightUnmarshal(Mess
>>>>> ageMarshaller.java:68)
>>>>>      at
>>>>> org
>>>>> .apache.activemq.openwire.v3.ActiveMQMessageMarshaller.tightUnmars
>>>>> hal(ActiveMQMessageMarshaller.java:67)
>>>>>      at
>>>>> org
>>>>> .apache.activemq.openwire.v3.ActiveMQBytesMessageMarshaller.tightU
>>>>> nmarshal(ActiveMQBytesMessageMarshaller.java:67)
>>>>>      at
>>>>> org
>>>>> .apache.activemq.openwire.OpenWireFormat.tightUnmarshalNestedObjec
>>>>> t(OpenWireFormat.java:453)
>>>>>      at
>>>>> org
>>>>> .apache.activemq.openwire.v3.BaseDataStreamMarshaller.tightUnmarsa
>>>>> lNestedObject(BaseDataStreamMarshaller.java:126)
>>>>>      at
>>>>> org
>>>>> .apache.activemq.openwire.v3.MessageDispatchMarshaller.tightUnmars
>>>>> hal(MessageDispatchMarshaller.java:72)
>>>>>      at
>>>>> org
>>>>> .apache.activemq.openwire.OpenWireFormat.doUnmarshal(OpenWireForma
>>>>> t.java:362)
>>>>>      at
>>>>> org
>>>>> .apache.activemq.openwire.OpenWireFormat.unmarshal(OpenWireFormat.
>>>>> java:276)
>>>>>      at
>>>>> org
>>>>> .apache.activemq.transport.tcp.TcpTransport.readCommand(TcpTranspo
>>>>> rt.java:209)
>>>>>      at
>>>>> org
>>>>> .apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.jav
>>>>> a:201)
>>>>>      at
>>>>> org
>>>>> .apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:
>>>>> 184)
>>>>>      ... 1 more
>>>>> Received 1000 messages.
>>>>> Received 2000 messages.
>>>>>
>>>>> TopicPublisher:
>>>>> private long batch(int msgCount) throws Exception {
>>>>> // Commented out call to waitForCompletion
>>>>> // waitForCompletion();
>>>>> }
>>>>>
>>>>> QN 1) I just want to know if I am configuring something wrong. Or
>>>>> should
>>>>> I
>>>>> increase -Xmx512m when running TopicListener to get rid of OOME?
>>>>
>>>> You shouldn't need to raise the memory at all as there should be
>>>> nothing causing memory to grow. I just added the sleep above to the
>>>> TopicListener using ActiveMQ 5.2.0 and I've produced and consumed
>>>> over
>>>> 300,000 messages in a matter of moments without any issue  
>>>> whatsoever.
>>>> I'm on MacOS X using Java 1.5.0_13. What OS and Java version are  
>>>> you
>>>> using?
>>>>
>>>>> QN 2) Will the advisory topic:
>>>>> ActiveMQ.Advisory.SlowConsumer.Topic.topictest.messages appear
>>>>> only if
>>>>> the
>>>>> consumer starts discarding messages? What is the basis for this
>>>>> topic to
>>>>> appear in Web console?
>>>>
>>>> I'm not able to see the *SlowConsumer* topic appear at all. I don't
>>>> know if that's because I'm using a dual core Intel processor or  
>>>> what.
>>>> What type of processor does your machine have?
>>>>
>>>> Bruce
>>>> -- 
>>>> perl -e 'print
>>>> unpack("u30","D0G)U8V4\@4VYY9&5R\"F)R=6-E+G-N>61E<D\!G;6%I; 
>>>> \"YC;VT*"
>>>> );'
>>>>
>>>> Apache ActiveMQ - http://activemq.org/
>>>> Apache Camel - http://activemq.org/camel/
>>>> Apache ServiceMix - http://servicemix.org/
>>>>
>>>> Blog: http://bruceblog.org/
>>>>
>>>>
>>>
>>> -- 
>>> View this message in context:
>>> http://www.nabble.com/Out-Of-Memory-Error-while-running-TopicPublisher-TopicListener-in-ActiveMQ-5.2-tp19515522p19520251.html
>>> Sent from the ActiveMQ - User mailing list archive at Nabble.com.
>>>
>>
>>
>>
>
> -- 
> View this message in context: http://www.nabble.com/Out-Of-Memory-Error-while-running-TopicPublisher-TopicListener-in-ActiveMQ-5.2-tp19515522p19533887.html
> Sent from the ActiveMQ - User mailing list archive at Nabble.com.
>


Mime
View raw message