Mass configuration of Jive servers

Hey everyone!

I want to configure Jive servers en-masse in a scalable way. Duplicating the actual Jive configuration itself is really easy and scalable because I can just copy conf/jive-messenger.xml to whichever machine I need to and re-start Jive.

Duplicating Jive’'s HSQLDB is more difficult, it seems. I only care about user names, not creation dates, or settings, or anything else. What does everyone think is the best way to do this?

I was thinking of using the User Import Export plugin (http://www.jivesoftware.org/messenger/plugins.jsp) to generate the XML file containing the user data, but is there some way to remotely “push” this file onto a Jive server? Perhaps just drop it into JIVE_MESSENGER/export/ and Jive would take care of it?

That would be the nicest and easiest thing to do.

Is there a way to remotely connect to the embedded DB and run SQL statements?

As a last resort, I can see myself using EmbeddedConnectionProvider.getConnection() and running INSERT SQL statements.

So what does everyone think? And thanks to anyone willing to help ahead of time.

Hi noodlez84,

You can use a shared external database such as postgres or mysql. That way you don’'t have to worry about how to get data from one server to the next, just point em to the same database.

However, without knowing what you are attempting to do exactly, you should also be aware that JM does not support clustering in any way. e.g. user data, conference, sessions modifications etc are not propagated and JM uses an internal cache for most objects. Perhaps you can give a bit more background.

Conor.

Thanks for the quick response, Conor!

You can use a shared external database such as

postgres or mysql. That way you don’'t have to worry

about how to get data from one server to the next,

just point em to the same database.

Yes, that would be the nicest solution, but through a serious of design decisions out of my control, there will be a multitude of Jive servers (anywhere from 100 to 300) running on completely separate Linux boxes. They must each have their own state, and so we decided to just use the embedded DB inside Jive which suits own needs perfectly.

However, without knowing what you are attempting to

do exactly, you should also be aware that JM does not

support clustering in any way. e.g. user data,

conference, sessions modifications etc are not

propagated and JM uses an internal cache for most

objects. Perhaps you can give a bit more background.

I have no need for clustering or any of the other advanced features you mention. I just want a quick, scalable way to replicate a list of usernames onto those 100-300 Jive servers.

Ideally, it would just be another XML config file I could package with the Jive Messenger RPM that I’'m already making.

If that’'s not possible, then a post-install script that creates them would be just as good.

Thanks to anyone ahead of time for taking the time to reply!

OK, so I answered my own question.

I simply compared a new RPM installation of Jive and a one that I already had running. The files that had changed or been created are the ones holding Jive’'s “state”.

So, in order to copy the configuration of a Jive server, you need to copy the following files if you’'re using the embedded DB:

  • conf/jive-messenger.xml

  • embedded-db/messenger.properties

  • embedded-db/messenger.script

And restart the server. That’'s it. Perhaps this would be a good topic for an FAQ or something. Hmm…