So I would see this increase in memory on the JMS sender? This seems a little strange. I have tried ActiveMQ 5.2 and see the same problem on the sending client application.
On Fri, Oct 10, 2008 at 2:39 AM, Rob Davies <[EMAIL PROTECTED]> wrote: > That's not a a memory leak you're seeing - that's the wacky Retroactive > Consumer functionality - see > http://activemq.apache.org/retroactive-consumer.html > The default policy is FixedSizeSubscrptionRecoveryPolicy - and the default > cache size for each topic in 5.1 is about 6mb. I'd suggest configuring a > smaller size for the cache (this is done by default in 5.2) - or disabling > it all together ;) - see see > http://activemq.apache.org/subscription-recovery-policy.html > > > cheers, > > Rob > > http://fusesource.com > http://rajdavies.blogspot.com/ > > > > > On 10 Oct 2008, at 01:55, Mark Webb wrote: > > I have run across a memory leak that I have been able to reproduce. I >> am profiling the sample application in NetBeans and I believe that I >> have traced the problem to >> >> org.apache.activemq.openwire.v3.BaseDataStreamMarshaller.tightUnmarshalByteSequence(DataInput, >> BooleanStream) >> >> The sample program is a very simple application that sends an object >> that I wrote to ActiveMQ every 200ms. In NetBeans I am using the >> "Live Allocated Objects" view and approximately 80% of all objects are >> byte[]. If I view the Allocation Call Tree, the first few methods in >> the tree are: >> >> BaseDataStreamMarshaller.tightUnmarshalByteSequence(DataInput, >> BooleanStream) >> org.apache.activemq.util.ByteArrayOutputStream.checkCapacity(int) >> org.apache.activemq.util.ByteArrayOutputStream.<init> >> java.lang.StringCoding$StringEncoder.encode(char[],int,int) >> >> The object that I am sending is a simple bean class and only contains >> an int, String and byte[]. >> >> I am using the base configuration for ActiveMQ. All my sample >> application does is call sendObject(Serializable) every 200ms. Here >> is the simple JMS library that I wrote: >> >> ------------- START -------------------------- >> public class JmsLib { >> >> private TopicConnection connection; >> private Session session; >> private Topic destination; >> private MessageProducer producer; >> private MessageConsumer consumer; >> >> public JmsLib( ActiveMQConnectionFactory connFactory, String dest >> ) throws JMSException { >> >> connection = connFactory.createTopicConnection(); >> session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); >> destination = session.createTopic( dest ); >> producer = session.createProducer( destination ); >> consumer = session.createConsumer( destination ); >> connection.start(); >> } >> >> public void addMessageListener( MessageListener listener ) throws >> JMSException{ >> consumer.setMessageListener( listener ); >> } >> >> public void sendObject( Serializable object ) throws JMSException{ >> ObjectMessage message = session.createObjectMessage( object ); >> producer.send(message); >> } >> } >> --------------- END -------------------------- >> >> Thanks for any help you may have... >> > >