A quick tour of ArcSDE services
This topic explains how an ArcSDE service works and what happens when a client connects using an ArcSDE service.
How the ArcSDE service works
When you connect to the database with an ArcSDE service (also called an ArcSDE application server), each ArcSDE service listens for user connections on a dedicated TCP/IP service name and port number through the giomgr process. The default service name is esri_sde, and the default port number is 5151.
On UNIX or Linux systems, the service name and port number can be found in the $SDEHOME/etc/services.sde file. To learn more about this file, see The services.sde file.
On Windows systems, the ArcSDE service is created as a Windows service during the ArcSDE postinstallation setup. This ArcSDE service is set to automatically start when the server host is rebooted. Like all Windows services, the ArcSDE service is usually started and stopped from the Windows Services menu. The postinstallation wizard automatically enters the service name and port number for the default service name in the registry and both the Windows and ArcSDE services files.
Most of the supported database management systems (DBMS) allow more than one database on a server. Each database must have its own ArcSDE service, but multiple client connections can be made to the database using that ArcSDE service.
What happens when a client application connects using an ArcSDE service?
The following sequence of events takes place when an ArcSDE client application connects to an ArcSDE geodatabase using an ArcSDE service.
The giomgr process listens for connections on its TCP/IP port.
The giomgr must be in a listening state before it can process a connection request. Make sure the ArcSDE service is started and listening.On UNIX and Linux, use sdemon –o status to determine the state of the giomgr process.
On Windows, examine the state of the ArcSDE application service from the Services menu. Open the Windows Administrative tools. Double-click the Services icon to invoke the Services menu. The ArcSDE service should have a status of STARTED under the status field. On Windows, you can also use the sdemon –o status command from an MS-DOS command tool instead of the Services menu.
Applications submit connection requests to the ArcSDE service.
The giomgr process responds to connection requests serially. Depending on the underlying DBMS, the giomgr process may require anywhere from 1 to 5 seconds to validate a connection request. It is possible that if many applications are trying to obtain an ArcSDE connection at the same time, some may exceed the standard TCP/IP 75-second time-out.
The giomgr compares the application computer's clock time with its host's clock time.
If the application computer's clock time is more than the MAXTIMEDIFF value in seconds from the server's clock time, the giomgr process does not allow the application to connect. MAXTIMEDIFF is set in the SERVER_CONFIG table. See The giomgr.defs file and the SERVER_CONFIG system table for details.
The giomgr compares the client application's release with the ArcSDE service's release.
If the client application's release is older than the application server's release, the connection is refused, except in the case of ArcGIS 9.2 SP5 or later 9.2 service pack clients.In general, ArcSDE applications are downward compatible. For example, applications developed with the ArcSDE 9.2 application programming interface (API), such as ArcGIS Desktop 9.2, can connect to an ArcSDE 9.1 or lower geodatabases with an ArcSDE service.Applications built with an earlier version of the ArcSDE API cannot connect to ArcSDE 9.2 application servers; for example, ArcGIS Desktop 9 cannot connect to an ArcSDE 9.2 geodatabase. Check the ESRI support site for supported ArcSDE releases.
The giomgr process starts a gsrvr process that serves the application.
The giomgr process must be able to spawn a gsrvr process. If the maximum number of processes determined by current operating system restrictions has been reached, this operation fails and no gsrvr process is created.
The gsrvr process connects to the DBMS.
The client application must provide a valid user name, password, and database name (the database name is not needed for Oracle DBMSs) when it submits the connection request to the giomgr process. Invalid entries are rejected with a -9 SE_INVALID_USER error.
The giomgr process attaches the application to the gsrvr process.
Once the giomgr process has attached the application to the gsrvr process, it resumes listening for new connections and performing other ArcSDE service management tasks. All application communication with the DBMS is conducted through the gsrvr process.