What mechanisms are used by SQL Server 2008 Mirroring to notify a driver that the primary has failed over?

StackOverflow https://stackoverflow.com/questions/7873784

Question

  • I've got a database that is mirrored using SQL 2008 Mirroring.

  • I have a java application, running on Linux, using the Microsoft SQL type 4 JDBC drivers.

  • I have this setup duplicated as a QA environment.

  • On my QA environment, when I manually fail over the database, providing a successful connection had already been made, the failover was completely transparent. I did not have to implement anything in order to get the application to talk to the new Principle (Old mirror).

  • In the live environment however, the connections stop working once I have manually failed over.

    There are quite a few things different between the live and QA environments, but not anything I'd consider fundamental to this process, communication between databases is all very localised in both situations and there are no firewalls (Except the ones built into Windows Server 2008) between my java app and the Windows boxes running SQL 2008.
    Does anyone have any ideas about how I can go about diagnosing this issue? Or can anyone tell me how this failover transparency occurs so I can work out how to diagnose this myself?

Was it helpful?

Solution

This behaviour is handled by the SQL Server provider as part of the Client Redirect behaviour. This was part of the SQL Server 2005 JDBC (Java Database Connectivity) 1.1 Driver, I'm unsure if that provider was directly used for the new type 4 drivers though?

In your live environment, is your application successfully connecting to the primary server before it fails over, so it is able to cache the failover partner and make use of that when the failover occurs?

To be sure, you can explicitly state the failover partner in the connection string, which is the recommended practice:

jdbc:sqlserver://serverA:1433; databaseName=AdventureWorks; integratedSecurity=true; failoverPartner=serverB

The full documentation of the redirect behaviour can be found here.

The addition of the failover documentation here suggests that it could be a manual consideration.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top