skip to main content
Using the driver : Using failover : Configuring failover : Specifying primary and alternate servers
  

Try DataDirect Drivers Now
Specifying primary and alternate servers
Connection information for primary and alternate servers can be specified using either one of the following methods:
*Connection URL through the JDBC Driver Manager
*JDBC data source
For example, the following connection URL for the SQL Server driver specifies connection information for the primary and alternate servers using a connection URL:
jdbc:datadirect:sqlserver://server1:1433;DatabaseName=TEST;User=test;
Password=secret;AlternateServers=(server2:1433;DatabaseName=TEST2,
server3:1433;DatabaseName=TEST3)
In this example:
...server1:1433;DatabaseName=TEST...
is the part of the connection URL that specifies connection information for the primary server. Alternate servers are specified using the AlternateServers property. For example:
...;AlternateServers=(server2:1433;DatabaseName=TEST2,server3:1433;
DatabaseName=TEST3)
Similarly, the same connection information for the primary and alternate servers specified using a JDBC data source would look like this:
SQLServerDataSource mds = new SQLServerDataSource();
mds.setDescription("My SQLServerDataSource");
mds.setServerName("server1");
mds.setPortNumber(1433);
mds.setDatabaseName("TEST");
mds.setUser("test");
mds.setPassword("secret");
mds.setAlternateServers("server2:1433;DatabaseName=TEST2, server3:1433;
   DatabaseName=TEST3")
In this example, connection information for the primary server is specified using the ServerName, PortNumber, and DatabaseName properties. Connection information for alternate servers is specified using the AlternateServers property.
The SQL Server driver also allows you to specify connections to named instances, multiple instances of a Microsoft SQL Server database running concurrently on the same server. If specifying named instances for the primary and alternate servers, the connection URL would look like this:
jdbc:datadirect:sqlserver://server1\\instance1;User=test;Password=secret;
AlternateServers=(server2\\instance2:1433;DatabaseName=TEST2,
server3\\instance3:1433;DatabaseName=TEST3)
Similarly, the same connection information to named instances for the primary and alternate servers specified using a JDBC data source would look like this:
SQLServerDataSource mds = new SQLServerDataSource();
mds.setDescription("My SQLServerDataSource");
mds.setServerName("server1\\instance1");
mds.setPortNumber(1433);
mds.setDatabaseName("TEST");
mds.setUser("test");
mds.setPassword("secret");
mds.setAlternateServers("server2\\instance2:1433;DatabaseName=
   TEST2,server3\\instance3:1433;DatabaseName=TEST3")
To connect to a named instance using a data source, you specify the named instance on the primary server using the ServerName property.
See Connecting to named instances for more information about connecting to named instances on Microsoft SQL Server.
The value of the AlternateServers property is a string that has the format:
(servername1[:port1][;property=value][,servername2[:port2]
[;property=value]]...)
or, if connecting to named instances:
(servername1\\instance1[;property=value][,servername2\\instance2
[;property=value]]
where:
servername1
is the IP address or server name of the first alternate database server, servername2 is the IP address or server name of the second alternate database server, and so on. The IP address or server name is required for each alternate server entry.
instance1
is the named instance on the first alternate database server, servername2 is the named instance on the second alternate database server, and so on. If connecting to named instances, the named instance is required for each alternate server entry.
port1
is the port number on which the first alternate database server is listening, port2 is the port number on which the second alternate database server is listening, and so on. The port number is optional for each alternate server entry. If unspecified, the port number specified for the primary server is used. If a port number is unspecified for the primary server, a default port number of 1433 is used.
property=value
is the DatabaseName connection property. This property is optional for each alternate server entry. For example:
jdbc:datadirect:sqlserver://server1:1433;DatabaseName=TEST;User=test;
Password=secret;AlternateServers=(server2:1433;DatabaseName=TEST2,
server3:1433;DatabaseName=TEST3)
or, if connecting to named instances:
jdbc:datadirect:sqlserver://server1\\instance1:1433;DatabaseName=TEST;
User=test;Password=secret;AlternateServers=(server2\\instance2:1433;
DatabaseName=TEST2,server3\\instance3:1433;DatabaseName=TEST3)
If you do not specify the DatabaseName connection property in an alternate server entry, the connection to that alternate server uses the property specified in the URL for the primary server. For example, if you specify DatabaseName=TEST for the primary server, but do not specify a database name in the alternate server entry as shown in the following URL, the driver tries to connect to the TEST database on the alternate server:
jdbc:datadirect:sqlserver://server1:1433;DatabaseName=TEST;User=test;
Password=secret;AlternateServers=(server2:1433,server3:1433)