Очистка объекта ActiveMQ - PullRequest
       3

Очистка объекта ActiveMQ

0 голосов
/ 21 сентября 2010

Я использую ActiveMQ в качестве компонента обмена сообщениями в нашем приложении Java EE (используя GlassFish). У нас возникают проблемы с задержкой доставки сообщений и утечками памяти. Чтобы определить проблему, я начал профилировать приложение. Профилирование памяти показало, что org.apache.activemq.command.ActiveMQObjectMessage является вторым в списке «живых выделенных объектов». Количество живых байтов, живых объектов и выделенных объектов постоянно увеличивается, так как приложение дольше работает.

Можно подумать, что ActiveMQObjectMessage следует очистить и собрать мусор после публикации сообщения и следующего запуска GC, но, похоже, это не так! У кого-нибудь были подобные проблемы, или кто-нибудь может предоставить какие-либо указатели?

Ответы [ 2 ]

1 голос
/ 18 марта 2011

Вы убедились, что полученные сообщения подтверждаются? Либо используйте AUTO_ACKNOWLEDGE при создании сеанса, либо вызовите #acknowledge () для полученного сообщения, чтобы сделать это.

Все неподтвержденные сообщения сохраняются до тех пор, пока не будет подтверждено одно сообщение.

0 голосов
/ 22 сентября 2010

Какой объект содержит все объекты ActiveMQObjectMessage?Если вы профилируете свое приложение, тогда вы сможете определить это.Какой профилировщик вы используете?Я настоятельно рекомендую YourKit .

Брюс

...