If a customer has a na application that accesses SQL
server running on a single machine (Windows 2003 Server)
and then decided to implement an active/passive server
cluster with SQL Server Enterprise, does the application
that accesses the database need to change? I am not sure
what is meant by "cluster-aware applications". Isn't
clustering supposed to be transparent to the application?
I read a line in "Server Clusters: Architectural Overview"
that said:
"Server clusters also provide the --> APPLICATION
INTERFACES <-- and tools needed to develop new cluster-
aware aaplications that can take advantage of the high
availability features of server clusters"
Thanks,
Todd
Hi
The biggest issue is when the cluster fails over from one node to another.
The client application must re-connect to the cluster again as the
connection will be broken when the failover occurs.
Any transaction that was running on behalf of the client would have been
rolled back and the application will have to re-submit it.
Regards
--
Mike Epprecht, Microsoft SQL Server MVP
Epprecht Consulting (PTY) LTD
Johannesburg, South Africa
Mobile: +27-82-552-0268
IM: mike@.NOSPAMepprecht.net
Specialist SQL Server Solutions and Consulting
<anonymous@.discussions.microsoft.com> wrote in message
news:1db6401c4546b$89e3d460$a101280a@.phx.gbl...
> If a customer has a na application that accesses SQL
> server running on a single machine (Windows 2003 Server)
> and then decided to implement an active/passive server
> cluster with SQL Server Enterprise, does the application
> that accesses the database need to change? I am not sure
> what is meant by "cluster-aware applications". Isn't
> clustering supposed to be transparent to the application?
> I read a line in "Server Clusters: Architectural Overview"
> that said:
> "Server clusters also provide the --> APPLICATION
> INTERFACES <-- and tools needed to develop new cluster-
> aware aaplications that can take advantage of the high
> availability features of server clusters"
> Thanks,
> Todd
>
|||A cluster aware application is an application that will function on a
cluster and failover when necessary. As an example, a virtual SQL Server
2000 server is cluster aware iin that it will fail back and forth. By the
same token, Excel is not. If SQL Server 2000 and Excel are both running on
node 1 and node 1 crashes SQL Server will failover to node 2, but Excel
will not.
Rand
This posting is provided "as is" with no warranties and confers no rights.
|||Cluster-aware Applications
===========================
An application is capable of being cluster-aware if it has the following characteristics:
* It uses TCP/IP as a network protocol.
* It maintains data in a configurable location.
* It supports transaction processing.
Most database applications, transaction processing applications, file and print server applications, and other groupware applications are capable of being made cluster-aware.
There are two types of cluster-aware applications:
* Applications that are managed as highly available cluster resources by a custom resource type. If you want your application to be highly available, to fail over, to benefit from customized failure detection
policies, or to be made available to clients on a virtual server, your application needs to be managed as a cluster resource. This means that in addition to any cluster-awareness you want to add to the application,
you will need to create a custom resource type to manage the application.
* Applications that interact with the cluster but are not cluster resources. Cluster Administrator is an example of such an application. This category also includes cluster-aware performance monitors, configuration
tools, setup applications, event handlers, and cluster management applications.
Cluster-Unaware Applications
===========================
The following features distinguish a cluster-unaware application:
* The application does not use the Server Cluster API. Therefore, it cannot discover information about the cluster environment, interact with cluster objects, detect that it is running in a cluster, or change its behavior
between clustered and non-clustered systems.
* If the application is managed as a cluster resource, it is managed as a Generic Application resource type or Generic Service resource type. These resource types provide very basic routines for failure
detection and application shutdown. Therefore, a cluster-unaware application might not be able to perform the initialization and cleanup tasks needed for it to be consistently available in the cluster.
Older applications are cluster-unaware. However, a cluster-unaware application can be made cluster-aware by creating resource types to manage the application. A custom resource type provides the
initialization, cleanup, and management routines specific to the needs of the application.
There is nothing inherently wrong with cluster-unaware applications. As long as they are functioning and highly available to cluster resources when managed as Generic Applications or Generic Services, there is
no need to make them cluster-aware. However, if an application does not start, stop, or failover consistently when managed by the generic types, it should be made cluster-aware.
Additional Information
======================
Platform SDK: Windows Clustering
http://msdn.microsoft.com/library/de...nformation.asp
Best Regards,
Uttam Parui
Microsoft Corporation
This posting is provided "AS IS" with no warranties, and confers no rights.
Are you secure? For information about the Strategic Technology Protection Program and to order your FREE Security Tool Kit, please visit http://www.microsoft.com/security.
Microsoft highly recommends that users with Internet access update their Microsoft software to better protect against viruses and security vulnerabilities. The easiest way to do this is to visit the following websites:
http://www.microsoft.com/protect
http://www.microsoft.com/security/guidance/default.mspx
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment