Configuring Spacewalk's jabberd to use an SQLite backend
This post details how to switch the database backed used by jabberd on a Spacewalk
server to use a SQLite Database so that osa-dispatcher becomes stable.
By default, jabberd when installed for use by Spacewalk uses a Berkeley DB to
store session data. This is notoriously flaky which results in osad clients
dropping their connection and often requires an administrator to regularly stop
the jabberd service, remove the corrupt database and restart it.
The solution is to reconfigure jabberd to use a better database to store its
session information.
The following process will switch jabberd to use SQLite instead.
Stop jabberd and osa-dispatcher
Use service on OL6:
|
|
Or systemctl on OL7:
|
|
Edit the jabberd configuration
Edit /etc/jabberd/sm.xml as follows:
|
|
Edit /etc/jabberd/c2s.xml as follows:
|
|
Create the SQLite database
Run the following commands to create an empty SQLite database with the required
jabberd schema in place and then change ownership of the database to the jabber
user:
|
|
Start the services again
Using service on OL6:
|
|
Or using systemctl on OL7:
|
|
Ensure that SQLite is being used
Check /var/log/messages to make sure that jabberd uses the sqlite storage module.
|
|
Reset and restart osad
If you have already registered client servers and installed osad on those
servers, it will most likely be necessary to remove the osad-auth.conf file
and restart osad before they will work after the database has been switched.
Using service on OL6:
|
|
Using systemctl on OL7:
|
|
This will trigger the osad client on each server to re-authenticate to jabberd.