У меня возникла проблема, которая вызывает OutOfMemoryError в моем приложении Java.
Приложение использует библиотеку планирования Quartz и имеет одного демона, который отправляет данные в очередь ActiveMQ.
Применение упрощенной работы:
- Демон запускается каждые 500 мс и читает данные из источника данных, демон состоит из нескольких bean-компонентов, и когда он завершает свою работу, он будет удален!
- Демон отправляет данные в очередь ActiveMQ.
- Демон использует соединение с очередью, которое инициализируется при запуске приложения, поэтому неправильное закрытие соединения не является проблемой для утечки!
При запуске Jprofiler в приложении Java я вижу увеличение размера кучи из-за создания в byte[]
экземплярах, и я подумал, что это из-за сообщений, отправляемых в очередь, мой вопрос: кто-нибудь знает, есть ли какие-либо конфигурация, которую ActiveMQ использует для продолжения заполнения кучи?
Примечание:
Я почти на 100% уверен, что утечка памяти вызвана ActiveMQ при отправке данных