Openfire update with minimal downtime (CentOS, tar.gz-Version)

Version 4

    This guide is for CentOS Linux with tar.gz-Version of Openfire. It might work also on Fedora or other Linux distributions.  I'm using an external database. It is always a good idea to make an full database backup before updating.


    For all instructions here: Turn your brain on, there might be changes in new Openfire versions!



    Prepare the update while Openfire is running. First prepare a second Openfire directory and copy openfire and plugins. Then shutdown Openfire, switch Openfire directories and start the new version. Total downtime is only the time Openfire needs for shutdown / startup which can't be avoided.


    Preparation step

    Assuming your old Openfire is located in /opt/openfire, extract the new version to /opt/openfire_new

    Further assumptions are that your Openfire user is called "openfire". During this step Openfire can be running all the time.


    cd /opt

    % set access rights correctly
    chown -R openfire openfire_new/
    chgrp -R openfire openfire_new/
    chmod -R go-rwx openfire_new/conf

    chmod -R go-rwx openfire_new/resources/security


    % copy SSL certificates and config file

    cp openfire/resources/security/* openfire_new/resources/security/

    cp openfire/conf/openfire.xml openfire_new/conf/


    % copy all your plugins, do not overwrite search.jar since it is already supplied with Openfire
    cp openfire/plugins/*.jar openfire_new/plugins/
    chown -R openfire openfire_new/plugins/
    chgrp -R openfire openfire_new/plugins/


    % create symbolic link: openfire ->
    cd /opt/openfire_new/bin
    ln -s openfire


    % open file openfire with your favorite editor and change the following parameters according to your needs

    INSTALL4J_ADD_VM_PARAMS="-Xms384m -Xmx384m"


    % give execution right to openfired script
    cd /opt/openfire_new/bin/extra
    chmod u+x openfired

    % open file openfired with your favorite editor and change the following two things
    % change user to openfire
    export OPENFIRE_USER=openfire
    % add the following at the beginning of function 'start()'. This is required for automatic startup/shutdown.
    touch /var/lock/subsys/openfired


    Update step

    This is a really quick and simple step.

    cd /opt

    % stop Openfire
    /opt/openfire/bin/extra/openfired stop

    % switch directories
    mv openfire openfire_old
    mv openfire_new openfire

    % start Openfire again
    /opt/openfire/bin/extra/openfired start


    % check your logfiles for possible problems. If serious problems appear switch back directories and restore your last database backup.