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
.