java.lang.OutOfMemoryError: GC overhead limit exceeded

Openfire 3.6.3

Windows 2003 Server

broadcast plugin

monitor plugin

I keep getting this a few minutes after openfire loads. it was running fine until this past Monday

I added the openfire.vmoptions file to my bin directory with

-Xms1024m
-Xmx1536m

i see this in the few minutes I can get into the console

Java Memory

469.06 MB of 493.06 MB

Hi,

if you prefer to get a normal OOM error you may also add -XX:-UseGCOverheadLimit to openfire.vmoptions.

I assume that you use also the embedded database. It stores the tables in memory, also the chat conversations so you’ll soon get an OOM error.

Remove the monitoring plugin (backup and delete monitoring.jar and the monitoring folder in openfire/plugins while Openifre is not running) and set the Xmx value a little bit higher, this should allow you to start Openfire again.

LG

added: You may also want to edit embedded-ed/openfire.properties while Openfire is not running and set “hsqldb.log_size=50”. This will rotate / compact the database logs when they reach 50 MB. Much better than to wait for a 200 MB file to be compacted.

well, I’d really not like to see any OOM message if you know what I mean…

hmm, tried that, didn’t do anything except get worse. could not get to admin console at all then.

using the launcher I see this (i just pasted the end of it, was a lot

org.jivesoftware.openfire.pep.IQPEPHandler.loadPEPServiceFromDB(IQPEPHandler.jav a:197)
at org.jivesoftware.openfire.pep.IQPEPHandler.getPEPService(IQPEPHandler.java:388)
at org.jivesoftware.openfire.pep.IQPEPHandler$1.run(IQPEPHandler.java:134)
Exception in thread “btpool1-0” java.lang.OutOfMemoryError: Java heap space
Logging Error: Unknown error writing event.
java.lang.OutOfMemoryError: Java heap space
Exception in thread “HouseKeeper” java.lang.OutOfMemoryError: Java heap space
1026922 [SocketAcceptor-0] WARN org.apache.mina.common.support.DefaultExceptionMonitor - Unexpected exception.
java.lang.OutOfMemoryError: Java heap space
java.lang.OutOfMemoryError: Java heap space

java.lang.OutOfMemoryError: Java heap space

yes I use the embedded db for the monitoring. I’m guessing it would be better if I offloaded this task? I need monitoring though

oh the joys of an inherited network…

so the more I messed with it the worse it got.

poking around on the server side of things I found that the previous admin had set the windows virtual memory to a static number, and well windows needed more than that. I increased the size and rebooted the server, everything seems to be fine now.

Hi,

did you already set “hsqldb.log_size=50”?

You should monitor the embedded-db directory as there the openfire.script and openfire.log file are stored. openfire.log should be “merged” into openfire.script as soon as it reaches 50 MB. So openfire.script will grow and sooner or later you will get another OOM.

So you need to get rid of the monitoring plugin within HSQLDB. Or you could try something which is not supported:

  • shutdown Openfire
  • make a backup of embedded-db/*
  • edit embedded-db/openfire.script (hopefully your editor can open it) and replace “CREATE MEMORY TABLE n …” to “CREATE CACHED TABLE n …” for n={ofConversation, ofConParticipant, ofMessageArchive, ofRRDs}.
  • start Openfire

The better solution is to use a remote database (Oracle, PostgreSQL, MySQL, MSSQL, …)

LG

no i didn’t set that I will thanks.

i have a sql server…i’ll look through the docs and see how to set that up. cuz they like monitoring…wheeee

Migration from embedded-db to MySQL, Oracle, MSSQL, …

ok, so I’m back to this project and ready to move to SQL. I looked at the link and I must say I’m lost.

can I install openfire on a new server then migrate just the users?

if i put it on a new server will I have to reconfigure the clients?