powered by Jive Software

About persistent room


how can i make muc room persistent, and make room member persistent too ?

how can i store the table(ofmucmember) , it seemed that there is not any record in the ofmucmember…

All your issues are related to configure a room which is described in XEP-0045 (section 10.1 and 10.2) each client can handle this in a different way. But with Openfire you can also create and configure the rooms via the admin console. Members of persistent rooms are also persistent and persistent members in a temporary room doesn’t make sense to me.

Thank for your answer,

but how can i configure the rooms via the admin console?

I attached a few screenshots which should illustrate the configuration. All rooms which you have created via admin console are persistent, since a temporary room get removed if nobody is in the room (XEP-0045 section 4.2). I’m not sure when Openfire saves the room settings in the database, I think there is a scheduled thread which removes unused rooms from the memory and saves the settings to the database.

Also in Openfire the persistent room will be unloaded from memory and hidden in the rooms list after some time of inactivity (30 days by default, this can be configured via system property - xmpp.muc.unload.empty_days).

Hello Wroot,

do you mean that Openfire server put in his cache, all persistent rooms?

What is the performance impact for a lot of Rooms?

if, there is not exceptionnal right member, it’s best to create temporary room?



I can’t say how exactly this works, but i think i’ve been told that all visible rooms are held in memory (cache if you will), probably so it would work faster than constantly loading from a database. Or maybe it is just holding the room’s details in memory, not the full room, if it is empty. Don’t know how many rooms can affect the performance. I think it should be similar impact if 10 users speak in temporary or persistent room. But persistent room will have to save history longer (if enabled), so it would take more and more memory with time. When temporary rooms is destroyed, it probably leaves no trails in memory or database.


i make a lot of test this week-end about persistent rooms and i see the openfire’s source code to understand how is implemented.

For performance, i don’t see any changes when i create 200 persistent rooms with default config service.

but, i don’t know if is a bug or not, but, i configure that all new rooms are persistent in my Service configuration and they are persistent when Openfire is Start but there are no save in my ofMucRoom table.

when i restart my openfire server, i lost all my persistent room that automatically create with my service default room param “Make Room Persistent”.

do you explain me why my rooms have not save in the table?

I’m using embedded database and i can’t reproduce your issue. My persistent rooms stay after server restart. Maybe something is wrong with your database (tables). Maybe something is in the error log?

Hello Wroot,

i’m using external mysql database and there are 2 use case.

First, when i create manually persistent room with admin console, my rooms are save in ofMucRoom.


if i check for default params service “Make Room Persistent”, my rooms are persistent only openfire is alive.

and i don’t understand why?

i’ve test with openfire 3.8.2 and 3.9.1 and i’ve the same issue.