ArcSDE Services cannot be started using HA Cluster application

471
4
11-13-2012 12:41 PM
EnriqueGonzalez
New Contributor
Hello:

I have two servers for High Availability using Microsoft Failover Cluster Management in Windows Server 2008 Enterprise Edition. ArcGIS Server components were installed and correctly authorized on both servers, also the ArcSDE services were installed and authorized.
In order to have GIS Services for WFS in High Availability an ArcSDE service called "esri_sde" was created on both servers and was added as a resource in a Cluster application called "ArcGISServer",
If the Active server is running correctly the "esri_sde" service is running on it, if the active server fails the Cluster Application switches to the passive server and should start the "esri_sde" service in the passive server.

ISSUE
When the Cluster application which contains the "esri_sde" service is switched to the passive server and vicebersa, the "esri_sde" service cannot be started by the Cluster application.

The "esri_sde" service can be started on each server correctly and without any problem, the issue is when the request to start the "esri_sde" service comes from the Cluster application.

Note: Also we have an "ArcGIS Server Manager" service installed on each server, which is also contained in the ArcGISServer Cluster application, this service is started correctly by the Cluster application, so this is the strange thing, the "ArcGIS Server Manager" can be started from the Cluster application but not the ArcSDE services.

Any ideas?, maybe an additional script or parameter is not considered, I've been searching for help in forums but this topic about ESRI GIS Services in HA is not common.


Enrique González Ruiz
0 Kudos
4 Replies
VinceAngelo
Esri Esteemed Contributor
There's no way to instruct ArcSDE clients to fail over, so there really isn't any point in
running multiple giomgrs (it just introduces a new point of failure).   The only way to get
HA is to use Direct Connect (and I doubt you'll get more than a reconnect, so it's not
true HA), so it doesn't really even matter if the applcation server is running (because
no clients can use it).

- V
0 Kudos
EnriqueGonzalez
New Contributor
There's no way to instruct ArcSDE clients to fail over, so there really isn't any point in
running multiple giomgrs (it just introduces a new point of failure).   The only way to get
HA is to use Direct Connect (and I doubt you'll get more than a reconnect, so it's not
true HA), so it doesn't really even matter if the applcation server is running (because
no clients can use it).

- V


Thanks for your reply.
What do you mean with "There's no way to instruct ArcSDE clients to fail over, so there really isn't any point in running multiple giomgrs ". We are only configuring arcsde service for HA in Microsoft cluster service for ArcGISSOM,ArcSDE and WebApplications, this is done using two servers with an unique virtual IP (this IP is used by the customer to access the GIS Services), no matter if server 1 is active or server 2 is. The ArcSDE generic service is the one which cannot be started by the cluster app, the generic service ArcGIS Server Object Manager can be started successfully.

The messages we got in Event viewer are:
- Generic service 'ArcSde Service(esri_sde)' failed with error '0'
- SDEHOME location doesn't exists (we already checked this problem and the environment variable is correct don't understand the error)

Thanks for your help.

Regards.

Enrique González Ruiz
0 Kudos
VinceAngelo
Esri Esteemed Contributor
ArcSDE clients have a stateful communication protocol in TCP/IP.  You can't just slap
one server in front of another and expect the dialog to continue. All active sessions
will immediately fail.

Direct Connect has been the recommended connection protocol for a while now,
and it's the only mechanism that has a chance of working during a failover event
(though the last time I had a client use it, all the SQL-Server sessions failed, and
it took one failed draw before ArcGIS Server would attempt to reconnect, but this
is an active error handling protocol on AGS' part, not a property of ArcSDE).

ArcGIS Server uses a stateless protocol, so it isn't subject to the same restrictions
as ArcSDE.

- V
0 Kudos
JaniceYu
New Contributor
ArcSDE clients have a stateful communication protocol in TCP/IP.  You can't just slap
one server in front of another and expect the dialog to continue. All active sessions
will immediately fail.

Direct Connect has been the recommended connection protocol for a while now,
and it's the only mechanism that has a chance of working during a failover event
(though the last time I had a client use it, all the SQL-Server sessions failed, and
it took one failed draw before ArcGIS Server would attempt to reconnect, but this
is an active error handling protocol on AGS' part, not a property of ArcSDE).

ArcGIS Server uses a stateless protocol, so it isn't subject to the same restrictions
as ArcSDE.

- V


Hi vangelo,

If DIE is used which uses arcsde service for the python scripts, what can you suggest on how to achieve high availability?
Thanks in advance!

Hi sorry, my mistake, the die script is not using arcsde service but will use the .sde file instead.
0 Kudos