Will our java programs fail over too? | SQL Server Performance Forums

SQL Server Performance Forum – Threads Archive

Will our java programs fail over too?

Hi all, We are considering a cluster implementation of our database servers, but one question remains unanswered. There are some java-programs running on the servers, controlling database behaviour (asynchronous collection of data from other servers). Will these fail over too, when the server goes down? Best regards, Lars Gustafsson

If you just install a java program straight up on a node it will not be cluster aware. You need to program it so it becomes aware. For example you can program your java programs as services and add them as a Generic Service in the cluster. You can then add settings in the registry and replicate over them during failover.
Thanks for your help! So, let’s say our java guy make our control programs cluster aware. When a node has failed over to another (including our java-apps) in our active/active-configuration, will it run in complete isolation from the node whose machine it is sharing? Thanks again! Lars
Each service is only running on one node at a time. During failover it’s stopped and started on the other node. If you have five control programs written as services and you run a two-node active/active setup they could be running like this:
– Program 1
– Program 2
Node 2:
– Program 3
– Program 4
– Program 5 During failover they would all be running on one node. Then you could fail back the ones you wanted. Note that if the services need to work with disks in the shared cluster they have to be in the same cluster group as the disks and made dependent on them. If these disks are the same disks as SQL Server use then your run the risk of causing the SQL Service to failover if any of your custom services fail since the entire group would failover.

Thank you for your quick response! My apologies – my native language is not English, so my last question may have been a little unclear. Let me rephrase the question: During failover, one node runs the whole show: two instances of sql server and all java programs. That is completely clear. However, are the programs (and servers) isolated from each other when they run on the same node? That is, are the services that ran on the first node sure not to conflict with the services on the second node? Thank you, Lars
The SQL instances are isolated from each other. They have their own system databases etc. When it comes to custom services it’s up to you to code them so that they are isolated from eachother when they run on the same server. They can for example not read/save settings from the same file or registry key (unless this is something you want them to do if they in turn are dependent on each other and need to failvoer as a group)
thank you very much for your help! /LG