12 окт. 2009 г.

Openfire + Java heap error

При использовании Jabber-сервера Openfire (у меня 3.6.3, но думаю, актуально и на более старых версиях) в linux влюченные plugin-ы, особенно IM Gateway, охочи до памяти. При достаточной активности и количестве подключенных пользователей, пользующих те или иные транспорты, возможно переполнение выделенной java-машине памяти и выпадение сервера в ошибку java.lang.OutOfMemoryError: Java heap space. В качестве решения можно предложить увеличение объема отдаваемой java-машине памяти (по умолчанию дается 32MB). Для этого нужно поправить init-скрипт openfire - ищем определение переменной DAEMON_OPTS и определяем ее следующим образом:
DAEMON_OPTS="$DAEMON_OPTS -server -Xmx128m -DopenfireHome=${DAEMON_DIR} \
-Dopenfire.lib.dir=${DAEMON_LIB} -classpath ${DAEMON_LIB}/startup.jar\
-jar ${DAEMON_LIB}/startup.jar"
Жирным маркером выделена свежедобавленная опция. В данном примере java-машине (и openfire-у соответственно) выделяется 128 метров памяти, чего хватить должно с избытком. Осталось лишь перезапустить сервер /etc/init.d/openfire restart.