Failover server

We’ve had to unexpectedly take our system that runs the Continua Server offline due to some (possible) hardware issues, which has made it so we can’t do any of our release builds.

Does the Continua Server have the concept of a backup server or a failover server? If not, what’s the best way to set up a backup server that we could get online and get everything back and running with minimal downtime?

Thanks in advance.

Hi Jeremy,

We don’t have any in-built fail-over server functionality.

Probably the simplest option would be to run your server in a virtual machine and use virtual machine replication to update an identical slave virtual machine.

It is also possible to replicate the database. This would require managing separate primary and standby database servers rather than using the bundled PostgreSQL database server. These can either be PostgreSQL or SQL Server - both of which support replication. See PostgreSQL: High Availability, Load Balancing, and Replication or SQL Server Replication

Once you have a fail-over database, you should be able to run a Continua CI install on another server and point it at that database. Make sure you have a backup of the server configuration file C:\Program Files\VSoft Technologies\ContinuaCI\Server\Continua.Server.Service.exe.config which contains the encryption keys which you will need to copy to the new install. The new server will not have a copy of the build logs. If you need these, make sure you have a synchronised copy of the ws folder under the under the data share folder. The new server will also not have the repository caches, but these will be rebuilt when the server starts. This may take some time so it would be useful to have a synchronised copy of the rc folder under the data share folder.

hi there, well to have a node for failover of the application would be nice - however one could realize that using a windows failover cluster and binding the ContinuaCI site to the core IP or a role IP.
but the more inconvenient issue is that the property “connection.connection_string” obviously does not understand the key “Failover Partner” for an MSSQL connectionstring - how can that be assuming the app is using an SQL native client?

Hi @cm.vienna,

We don’t have database mirroring set up at the moment so we can’t really test this without allocating significant time and resources. Can you let us know what you are seeing which suggests that “Failover Partner” is not understood?

Continua CI uses NHibernate as its data access layer for most database queries and updates. It also uses Dapper in some cases where performance is required. Both NHibernate and Dapper use an ADO SqlConnection which should support a Failover Partner.

We’re not experts on SQL Server replication, but as far as we know it should work providing that mirroring is configured correctly on the database servers. Which version of SQL Server are you using? Are you using mirroring or always on availability groups?

hi Sparky, thanks for your reply … and i have to apologize.
having updated ContinuaCi a few weeks ago to (from some older version installed end of 2014) i just copied the connectionstring from the older installation. just now i tried the (initially not working) “Server=10.10.0.x;Failover Partner=10.10.0.y;Database=continuaCi;User ID=;Password=**;” and voilá - everything appears to work as expected (after restarting the ContinuaCI service).

IIRC the error message was something like “the SQL instance you are trying to connect is acting as mirror and cannot be accessed” - SQL are 2012 standard (meanwhile SP4) configured as failover on two nodes on a W2012 failover cluster.

again, thanks for taking care and maintaining ContinuaCI

Great to hear that you’ve now got it working.