activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Christopher G. Stach II" <...@ldsys.net>
Subject Re: 4.0 Consumer OutOfMemoryError bug?
Date Fri, 16 Jun 2006 05:15:25 GMT
jsalvo wrote:
> I am seeing this problem as well ... and I have optimizedAcknowledge disabled
> in my jndi.properties:
> 
> java.naming.provider.url =
> tcp://localhost:61616?jms.optimizeAcknowledge=false
> 
> I have this happened while testing ActiveMQ 4.0.
> 
> If I have one Connection, then multiple Sessions from the same Connection,
> and each Session creating its own Consumer, then the problem DOES NOT
> happen.
> 
> If I have multiple Connections, then one Session from each Connection, and
> each Session creating its own Consumer, then the problem DOES happen.
> 
> The first sign of problem from the logs was being unable to create the
> dynamic destination:
> 
> 2006-06-16 12:48:52,778 [127.0.0.1:59267] ERROR ManagedRegionBroker           
> - Failed to register destination queue://SampleDynamicQueue
> javax.management.InstanceAlreadyExistsException:
> org.apache.activemq:BrokerName=localhost,Type=Queue,Destination=SampleDynamicQueue
>         at
> com.sun.jmx.mbeanserver.RepositorySupport.addMBean(RepositorySupport.java:452)
>         at
> com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.internal_addObject(DefaultMBeanServerInterceptor.java:1410)
>         at
> com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerObject(DefaultMBeanServerInterceptor.java:936)
>         at
> com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerMBean(DefaultMBeanServerInterceptor.java:337)
>         at
> com.sun.jmx.mbeanserver.JmxMBeanServer.registerMBean(JmxMBeanServer.java:497)
>         at
> org.apache.activemq.broker.jmx.ManagedRegionBroker.registerDestination(ManagedRegionBroker.java:215)
>         at
> org.apache.activemq.broker.jmx.ManagedRegionBroker.register(ManagedRegionBroker.java:143)
>         at
> org.apache.activemq.broker.jmx.ManagedQueueRegion.createDestination(ManagedQueueRegion.java:57)
>         at
> org.apache.activemq.broker.region.AbstractRegion.addDestination(AbstractRegion.java:77)
>         at
> org.apache.activemq.broker.region.RegionBroker.addDestination(RegionBroker.java:217)
>         at
> org.apache.activemq.broker.BrokerFilter.addDestination(BrokerFilter.java:129)
>         at
> org.apache.activemq.advisory.AdvisoryBroker.addDestination(AdvisoryBroker.java:141)
>         at
> org.apache.activemq.broker.BrokerFilter.addDestination(BrokerFilter.java:129)
>         at
> org.apache.activemq.broker.MutableBrokerFilter.addDestination(MutableBrokerFilter.java:142)
>         at
> org.apache.activemq.broker.region.AbstractRegion.addConsumer(AbstractRegion.java:161)
>         at
> org.apache.activemq.broker.region.RegionBroker.addConsumer(RegionBroker.java:293)
>         at
> org.apache.activemq.broker.BrokerFilter.addConsumer(BrokerFilter.java:73)
>         at
> org.apache.activemq.advisory.AdvisoryBroker.addConsumer(AdvisoryBroker.java:77)
>         at
> org.apache.activemq.broker.BrokerFilter.addConsumer(BrokerFilter.java:73)
>         at
> org.apache.activemq.broker.MutableBrokerFilter.addConsumer(MutableBrokerFilter.java:86)
>         at
> org.apache.activemq.broker.AbstractConnection.processAddConsumer(AbstractConnection.java:427)
>         at
> org.apache.activemq.command.ConsumerInfo.visit(ConsumerInfo.java:295)
>         at
> org.apache.activemq.broker.AbstractConnection.service(AbstractConnection.java:201)
>         at
> org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:62)
>         at
> org.apache.activemq.transport.ResponseCorrelator.onCommand(ResponseCorrelator.java:97)
>         at
> org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:63)
>         at
> org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:114)
>         at
> org.apache.activemq.transport.InactivityMonitor.onCommand(InactivityMonitor.java:122)
>         at
> org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:87)
>         at
> org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:143)
>         at java.lang.Thread.run(Thread.java:595)
> 
> This exception was logged 10 times ( 10 times because there were 10
> connections ?? )
> 
> Then after that, I have:
> 2006-06-16 12:52:28,656 [127.0.0.1:59272] INFO  Service                       
> - Sync error occurred: java.lang.OutOfMemoryError: Java heap space
> java.lang.OutOfMemoryError: Java heap space
> 
> 
> The following was logged on the console but not on the log file:
> Exception in thread "ActiveMQ Transport: tcp:///127.0.0.1:59273" Exception
> in thread "MulticastDiscovery: tcp://jsalvo-desktop:61616"
> java.lang.OutOfMemoryError: Java heap space
> Exception in thread "MulticastDiscovery: null" java.lang.OutOfMemoryError:
> Java heap space
> 
> 
> 
> --
> View this message in context: http://www.nabble.com/4.0-Consumer-OutOfMemoryError-bug--t1707655.html#a4894234
> Sent from the ActiveMQ - User forum at Nabble.com.
> 

We're getting very similar memory consumption until permgen space fills
up and MBean registration exceptions, but only in the broker which runs
in its own JVM.  We don't use discovery, though.  We also have
optimizeAcknowledge turned off.  Somehow, we run out of 512MB with fewer
than ten thousand very small messages (just a couple of Integers.)

-- 
Christopher G. Stach II

Mime
View raw message