Migrate Windows to Linux (embedded db)


is it possible to migrade from a Windows machine to a Linux mahine with the embedded db?
The new linux machine is a new server with a new name and has Openfire 3.7.1 (same version as on the Windows machine) installed on it.
How can i get my db and all settings to the new one?


By new name do you mean only the computers’ names differ, or do these two Openfire servers has different xmpp.domain names? You can find this entry in the System Properties. If they are different, then you should change it first on the Linux server to match the name of the Windows Openfire server. Then you can try just copying over the embedded-db folder from a Windows machine to a Linux machine (of course, both servers should be stopped). Maybe you even don’t have to rename anything as most information is stored in the db. But there may be some related stuff in the conf folder, so maybe you should copy it to. As well as resources/security folder if you are using certificates.

Both the computer name and the xmpp.domain. I’ve changed the xmpp.domain in the Linux machine so it is not the same as on the Windows machine.
I stopped both servers and copied the embedded-bd, conf and security folder.

I started the service but cant reach the http://server:9090 so i guess it didnt work.
I changed the permissions of all the files i copied to openfire (instead of root), but with the same results.

I see the follwing in the error.log

Caused by: java.sql.SQLException: ConnectionManager.getConnection() failed to obtain a connection after 11 retries. The exception from the last attempt is as follows: java.sql.SQLException: The database is already in use by another process: org.hsqldb.persist.NIOLockFile@5ef5a813[file =/var/lib/openfire/embedded-db/openfire.lck, exists=true, locked=false, valid=false, fl =null]: java.io.FileNotFoundException: /var/lib/openfire/embedded-db/openfire.lck (Permission denied)

Any ideas?

EDIT: It took about 10 minutes and now it’s running, i cant login though, just say wrong username or password, same if i try to login with a client (Spark).

EDIT2: There we go, DNS-problems . So, now it’s working. Thank you!

EDIT3: Got one more qustion for you How do i transfer the chat history? I’ve moved all the logs and changed the path on the new server to

/var/lib/openfire/Spark_konv/ earlier in C:\Spark_konv. The new conversations are saved to that location, but the clients wont get the old ones, anything i could do? I’ve got the Monitoring Service plugin installed.

I’m not sure i understand. Were you using Monitring Service before or just audit logs? Then i don’t know how it was possible to reach the conversation history. Even Monitoring Plugin doesn’t provide this for clients (unless the new experimental version of that plugin, but i doubt you are using it). Maybe you are referring to the history which is saved on every client’s computer in Spark profile? If your server name has changed, then your users login with new usernames (user@server), therefor Spark has created new profiles for such usernames with fresh history files (check C:\Users\username\AppData\Roaming\Spark\user\ on Windows)