What happens if you run that code without the database piece ? Also - have you reduced your prefetch to 100 ? Are you receiving messages that aren't ObjectMessage types ?
On 25 Mar 2010, at 00:24, Milan Tomic wrote: > > Memory consumed is growing slowly with a time... over 100 MB in one day and > it never comes back... there must be something wrong with my code below? do I > need message.acknowledge() or something? > > TIA, > Milan > > > > > ----- Original Message ---- > From: Gary Tully <gary.tu...@gmail.com> > To: users@activemq.apache.org > Sent: Wed, March 24, 2010 11:08:18 AM > Subject: Re: OutOfMemoryException in consumer > > try reducing the prefetch, you may be getting up to 1000 messages > accumulated on your consumer: > http://activemq.apache.org/what-is-the-prefetch-limit-for.html > > Also have a read of: > http://activemq.apache.org/javalangoutofmemory.html > > On 24 March 2010 09:37, Milan Tomic <tomicmi...@yahoo.com> wrote: > >> Is this consumer code OK? Sometimes I got OutOfMemoryException and I can't >> find what resources I am not releasing... >> >> while (true) { >> try { >> Connection conn = oraPC.getConnection(); >> Statement stmt = null; >> try { >> while ((message = mq_consumer.receive(10)) != null) { >> if (message instanceof ObjectMessage) { >> if (stmt == null) >> stmt = conn.createStatement(); >> ObjectMessage msg = (ObjectMessage)message; >> String insert = getInsert(msg); >> stmt.addBatch(insert); >> sql += "\r\n"+insert; >> } >> } >> if (stmt != null) { >> stmt.executeBatch(); >> conn.commit(); >> mq_session.commit(); >> } >> } >> } finally { >> if (stmt != null) >> try { >> stmt.close(); >> stmt = null; >> } catch (SQLException e) {} >> if (conn != null) >> try { >> conn.close(); >> conn = null; >> } catch (SQLException e) {} >> } >> } catch (Exception e) { >> e.printStackTrace(); >> try { mq_session.rollback(); } catch (JMSException e1) { >> e1.printStackTrace(); } >> } >> // Sleep here... >> } >> >> And this is how I init MQ session: >> >> mq_session = mq_connection.createSession(true, Session.AUTO_ACKNOWLEDGE); >> >> >> >> >> > > > -- > http://blog.garytully.com > > Open Source Integration > http://fusesource.com > > > >