sdemon

The sdemon command is used primarily to monitor and manage an ArcSDE service. Some of the operations used with sdemon also monitor and manage direct connections made to the ArcSDE geodatabase.

You can use sdemon to start, pause, resume, and shut down all connection activity and display current configuration parameters and server task information. Individual server tasks can also be managed.


Security: Execution privileges are granted exclusively to the ArcSDE administrator for the start operation. All other operations may be executed by any user who knows the password.

Usage syntax

sdemon -o status {[-i {<service> | <port#> | <direct connection>}]
[-s <server_name>] | [-H <sde_directory>]} [-q] [-u <user_name>]
[-p <user_password>] [-D <database_name>]
 

sdemon -o start {[-i {<service> | <port#>}] [-s <server_name>] | [-H <sde_directory>]}
[-p <ArcSDE_admin_password>]
 

sdemon -o shutdown {[-i <service>] [-s <server_name>] | [-H <sde_directory>]}
[-p <ArcSDE_admin_password>] [-N]
 

sdemon -o pause {[-i {<service> | <port#> | <direct connection>}]
[-s <server_name>] | [-H <sde_directory>]}
[-p <ArcSDE_admin_password>]
 

sdemon -o resume {[-i {<service> | <port#> | <direct connection>}]
[-s <server_name>] | [-H <sde_directory>]}
[-p <ArcSDE_admin_password>]
 

sdemon -o info -I <{users | users_long | config | stats | locks | vars | instances}>
[-q] {[-i {<service> | <port#> | <direct connection>}]
[-s <server_name>] | [-H <sde_directory>]}
[-u <user_name>] [-p <user_password>] [-D <database_name>]
 

sdemon -o kill -t <{ all | pid }> [-p <ArcSDE_admin_password>] [-N]
{[-i {<service> | <port#> | <direct connection>}]
[-s <server_name>] | [-H <sde_directory>]}
[-u <user_name>] [-p <user_password>] [-D <database_name>]
 

sdemon -h
 

sdemon -?
 

Operations

Operation Description Example
info Displays information about users, configuration, statistics, locks, or environment variables

Does not require the ArcSDE administrator password to execute

Obtain information about an ArcSDE geodatabase
kill Terminates all connections or a specified connection to the geodatabase Remove connections from a geodatabase
pause Disallows further client connection requests, both ArcSDE service and direct connections, to be processed Pause an ArcSDE service
resume Allows client connection requests to be processed again; client tasks are allowed to connect to ArcSDE servers through this ArcSDE service. Resume a paused service
shutdown Shuts down the ArcSDE service immediately if no server tasks are running Stop an ArcSDE service
start Starts the ArcSDE service if it is not running

Note: Only the ArcSDE administrator can use this operation.

Start an ArcSDE service
status Reports the service status (if one is running) and connection information Discover the status of an ArcSDE service

 

Options

Options Description
-D Database name (not supported on Oracle)

The database name only needs to be provided with the status, info, or kill operations if you are making a direct connection to the geodatabase.

-h or -? Use either of these options to see the usage and options for the command. Note: If using a C shell, use -h or "-\?".
-H ArcSDE home directory (SDEHOME)
-i ArcSDE service name or port number (default: esri_sde or 5151)

Note: When starting a remote service, you must use the service name.

-I Only used with the info operation

Inquires about configuration, locks, statistics, users, environment variables, or user geodatabases stored in Oracle

config: Displays current configuration variables

locks: Displays lock information about processes that are holding locks

stats: Displays process statistics for each ArcSDE client/server connection; this only works for ArcSDE services and only if you have the SERVER_CONFIG parameter, PROCSTATS, set to a value other than -1.

users: Lists user's connections to the ArcSDE geodatabase, the type of connection, and associated process identifiers; each connection is one record.

users_long: Lists user's connections to the ArcSDE geodatabase, the type of connection, and associated process identifiers; information is returned in a list of properties for each connection.

vars: Displays ArcSDE service environment variables

instances: Name of the user-owned geodatabase to be queried (Oracle only)

-N No verification is performed; the operation begins immediately after being invoked.
-o Operation
-p For the start, pause, resume, shutdown, and kill operations, this option is used to specify the password of the ArcSDE administrator. For the status and info operations, this can be any database user's password.
-q Quietall titles and warnings are suppressed.
-s ArcSDE server host name (default: localhost)
-t Kills connections to the geodatabase

all: Forcefully removes all connections

pid: Removes the connection identified by the process identifier specified
-u Database user name

This option is only used with the kill, info, and status operations when making a direct connection.

When used with the kill operation, the -u option allows you to specify a database user who has the requisite permissions in the database to kill a direct connection to the database. Since the ArcSDE administrator user may not have all the necessary permissions, the user cannot be assumed to be the ArcSDE administrator, as it is with most of the other operations used with sdemon.

When used with the info or status operations, this is the user name of any user who has access to the geodatabase.

 

Discussion

The sdemon command primarily allows you to manage and monitor ArcSDE services; however, several of the operations also allow you to manage or monitor direct connections to the geodatabase.

The start, shutdown, pause, and resume operations normally manage ArcSDE services installed on UNIX systems. ArcSDE services installed on Microsoft Windows systems are usually managed via the Windows Services dialog box.

The ArcSDE service may be managed remotely by including the server (-s) and service (-i) options on the command line. UNIX operating system ArcSDE services can be remotely managed by an sdemon operation executed on a Windows operating system. However, Windows operating system ArcSDE services can only be remotely managed by an sdemon operation executed from another Windows operating system. To remotely manage an ArcSDE service installed on a UNIX system, additional steps are required. Refer to the topics Starting an ArcSDE service and Stopping an ArcSDE service in the ArcGIS Desktop or ArcGIS Server help for a detailed discussion.

Note that you only need to specify the -H option (SDEHOME) if the variable is not set or you have multiple services and, therefore, multiple SDEHOME directories.

For a detailed discussion of the management of an ArcSDE service, refer to the Connecting to an ArcSDE geodatabase book for your DBMS in the ArcGIS Desktop or ArcGIS Server Help.

Only the start and shutdown operations cannot be executed by providing direct connection information instead of ArcSDE service connection information.

When using the kill operation to disconnect direct connections, you must use direct-connect syntax for the connection, not ArcSDE service connection syntax. Similarly, when using the kill operation to disconnect ArcSDE service connections, you must use the ArcSDE service connection syntax, not direct-connect syntax.

The ArcSDE administrator user has the required permissions to disconnect ArcSDE service connections to the geodatabase. However, to disconnect direct connections to the geodatabase, additional permissions must be granted to the ArcSDE administrator in most cases. What permissions are needed depends on the database management system (DBMS) being used to store the geodatabase. These permissions are as follows:

DBMS Required permissions/authority
DB2 The user needs DBADM authority. The SDE user normally has this, so no additional permissions should be needed.

Note: The kill operation cannot be used with sdemon if your DB2 DBMS is on a z operating system (z/OS).

Informix The user must be the informix user.

Note: You must have Informix IDS 11 or a later release to use the kill operation with the sdemon command to disconnect direct connections to the geodatabase.

Oracle The user must have either the DBA role or be granted ALTER SYSTEM and the SELECT_CATALOG_ROLE.

SQL Server The user must be a member of the sysadmin or processadmin fixed server roles. If you are using a dbo-schema geodatabase, the ArcSDE administrator is already a member of sysadmin. If you are using an SDE-schema geodatabase, the user must be added to the processadmin fixed server role, not the sysadmin role. Putting the user in the sysadmin role automatically makes the user dbo, which incorrectly indicates to ArcSDE that the geodatabase has a dbo-schema.

Note: This functionality is not currently supported in ArcSDE for PostgreSQL.

Examples

Obtain information about an ArcSDE geodatabase

To display information about users, configuration, statistics, locks, or environment variables for an ArcSDE geodatabase, use the info operation. This example requests information about the ArcSDE service's configuration (only partial results are shown). Since the -i option is not specified, it is assumed the service is the default value (5151).

sdemon -o info -I config

ArcSDE I/O Manager Configuration Parameters at
Fri May 13 11:52:43 2005
————————————————————————————————————-
ArcSDE Version          9.1
ArcSDE Server Build     for DB2
Underlying DBMS         DB2
Max. Server Connections 50
Root Path               D:\arcsde
Temp Path               C:\Temp
...

This example makes a direct connection to a geodatabase in PostgreSQL to get information about locks:

sdemon -info -I locks -i sde:postgresql:myserver -u usera -p pwda -D gisdb

ArcSDE Instance sde:postgresql:myserver Lock Table Information on myserver

No ArcSDE Layer Locks registered.

1 SDE Id:   87, State:  4, Lock Type: Shared State
1 ArcSDE State Lock(s) currently in use.

1 SDE Id:   87, table: 55, Lock Type: Shared Table
1 ArcSDE Table Lock(s) currently in use.

No ArcSDE Object Locks registered.

In this example, information is requested for the sde and user-schema geodatabases on an Oracle database:

sdemon -o info -I instances

ArcSDE Instance sdeora10g's instances on verde at Thu Feb 24 08:23:14 2005
------------------------------------------------------------
Instance  Type          Created                        Id
-------- ----- -------------------------------- ------------
SDE      MASTER   Thu Oct 28 15:30:45 2004        0
FIELD    PROJECT  Thu Oct 28 16:38:46 2004        1

Note: Alternatively, you can use SQL to query the INSTANCES system table to obtain information about user-schema geodatabases.

 

The following example shows which users are connected to the ArcSDE geodatabase. In the returned information, S-ID is the server's SDE-ID, S-PID is the server's OS-level process ID, User is the name of the user under which the connection was made, Conn is the type of connection (AS = ArcSDE service/application server or DC = direct connection), Client:OS is the name of the connecting client machine and the operating system it is running, and Started is the date and time the connection was initiated.

sdemon -o info -I users -i 5100 -s datenbank

ArcSDE Instance 5100 Registered Server Tasks on datenbank at Wed Oct 29 10:29:00 2008
------------------------------------------------------------------------
S-ID   S-PID   User      Conn  ClientMachine:OS      Started
----- -------- --------- ----- --------------------- ---------------------------
546    68821   RJP       AS    hundehutte:Win32      Mon Oct 27 07:32:56 2008
547    44790   PERRITA   DC    halter:Win32:XDR      Mon Oct 27 08:11:05 2008

The same information returned with the users_long option would appear as follows:

sdemon -o info -I users_long -i 5100 -s datenbank

ArcSDE Instance 5100 Registered Server Tasks on datenbank at Wed Oct 29 10:32:47 2008
------------------------------------------------------------------------
Server task ID: 546
Server task PID: 68821
Connection type: AppSrvr
User name: RJP
Client machine: hundehutte
Client OS: Win32
XDR: no
Start time: Mon Oct 27 07:32:56 2008

Server task ID: 547
Server task PID: 44790
Connection type: Direct
User name: PERRITA
Client machine: halter
Client OS: Win32
XDR: yes
Start time: Mon Oct 27 08:11:05 2008

Remove connections from a geodatabase

The kill operation disconnects all connections or a specified connection to the ArcSDE service or it can be used to kill all or a specified direct connection to the geodatabase. As mentioned previously, the syntax you use varies depending on what type of connections you are trying to remove.

In this example, all connections to the geodatabase medtrack are being removed.

sdemon -o kill -t all -i 4664 -p zeus

Kill should generally only be used if a user process has shut down incorrectly or hung.

Here, the connection for process ID (S-ID) 102 is being killed. Note: The process ID can be obtained by executing the sdemon command with the users or users_long option.

sdemon -o kill -t 102 -i 2000 -p pswd

To kill a connection to a user-schema geodatabase in Oracle, specify the geodatabase connection information. In the following example, the owner of the geodatabase, brogel, is killing process ID 211:

sdemon -o kill -t 211 -i 5100:brogel -p knock.knock

Note: If the owner of a user-schema geodatabase executes the kill operation with the all option, it drops all connections to all geodatabases in the Oracle instance, including connections to the master SDE geodatabase.

To kill a direct connection to the geodatabase, the ArcSDE administrator may need to be granted additional permissions in the database. See the Discussion section for a list of these permissions. In this example, one direct connection (SP-ID 42) is being dropped from the gdata database in the ss1\geo SQL Server instance:

sdemon -o kill -t 42 -i sde:sqlserver:ss1\geo -u sde -D gdata
Enter ArcSDE DBA password:
ArcSDE Instance sde:sqlserver:ss1\geo Process Management on gdata

Kill Server Task 42?   ARE YOU SURE (Y/N)?: y

Pause an ArcSDE service

Using the pause operation prevents any additional client connection requests from being processed. No client tasks can connect to the ArcSDE geodatabase associated with this service until the service is resumed.

sdemon –o pause -i sde_service

Please enter ArcSDE DBA password:

ArcSDE instance sde_service on Rabbit is Paused, no further connections will be allowed.

The pause operation changes a value in the SERVER_CONFIG table, which also blocks new direct connections from being made to the geodatabase. Note: Although pausing an ArcSDE service also blocks direct connections, you cannot use sdemon -o pause if you only use direct connections (no ArcSDE service existis).

Resume a paused service

Use the resume operation to allow client connection requests to be processed again. Client tasks can connect to the ArcSDE geodatabase associated with this service once this command is executed.

sdemon –o resume -i sde_service

Please enter ArcSDE DBA password:

ArcSDE instance sde_service on Rabbit is Resuming, new connections will now be allowed.

Stop an ArcSDE service

Use the shutdown operation to immediately stop an ArcSDE service if no server tasks are running. If server tasks are running, you will be prompted to remove the running tasks before the shutdown takes place. If you use the -N option when shutting down, all server tasks stop and the system shuts down immediately. Note that the -i option is not specified in this example; since the default service name is used, it does not need to be explicitly stated.

sdemon -o shutdown -N

Please enter ArcSDE dba password:

ArcSDE instance esri_sde on Rabbit is shutdown!

Start an ArcSDE service
The ArcSDE administrator can use the start operation to start an ArcSDE service that is not running. The administrator can start the service locally (execute the command on the machine on which the service will be running) or remotely. If starting a service locally on a Windows machine, you can do this through the Windows Services menu instead of using the sdemon command with the start operation. If starting a Windows service remotely, it must be performed from another Windows machine that can access the host computer through the network, and the command must include the host computer and service name. For example:

sdemon -o start -s chile -i dev -p secret

Note: The service name (in this case, dev)not the port numbermust be used. Using the port number results in an error.

You can start a service from the command line on a local Windows server. If you only have one ArcSDE service, you do not need to specify the service name. If you do not specify the administrator password, you will be prompted for it.

sdemon –o start

Please enter ArcSDE DBA password:

ArcSDE instance esri_sde started Thu Aug 04 09:27:30 2005

To remotely start a service on a UNIX or Linux server, you can work from either a Windows or another UNIX or Linux machine. Before you can do this, however, there are some configurations you must perform..

  1. Create the $SDEHOME/etc/dbinit.sde file with the database connection and the library path to the ArcSDE and DBMS dynamic libraries.

  2. For example

    set ORACLE_HOME=/bluebeard/oracle
    set ORACLE_SID=ora
    set LD_LIBRARY_PATH=/usr/lib:/bluebeard/oracle/lib:/bluebeard/oraexe/sdeexe91/lib

  3. As the root user, duplicate the service name in the /etc/services file as a user datagram protocol (UDP) entry that uses the same port number.

    esri_sde  5151/tcp
    esri_sde  5151/udp

  4. As the root user, update the /etc/inetd.conf file. Add this line to the bottom of the file:

    <ArcSDE instance> dgram udp wait <ArcSDE home owner> <$SDEHOME>/bin/sderemote iomgr_inetd
    <$SDEHOME><ArcSDE instance>

  5. As the root user, identify the relevant process using the UNIX command ps - piped through grep. Reinitialize the inetd daemon by sending it a signal hang-up or SIGHUP.

    $ ps -u root | grep inetd
    root 112 1 0 Aug 28 ? 0:08 /usr/sbin/inetd -s

    $ kill -HUP 112

Once these configuration steps are complete, you can remotely start the service using the start operation.

sdemon -o start -s bluebeard -i esri_sde -p my_password

This example shows starting a local service on a UNIX server:

sdemon -o start -s orr -i sde -p crab_apples

Note: The start operation does not use the service specified in the SDEINSTANCE variable.

Discover the status of an ArcSDE service

The status operation reports whether an ArcSDE service is running, paused, or stopped and how many connections are currently being made to the geodatabase. The example below is reporting on the status of the esri_sde instance. It shows the service is running (not stopped or paused) and currently has two connections.

sdemon –o status

ArcSDE Instance esri_sde Status on Rabbit at Thu Aug 04 09:23:35 2005
---------------------------------------------------------------------------------
Server Connection Mode:                   Accepting Connections
Active Server Processes:                  2

The geodatabase is paused when it is being upgraded. If you check the status at that time, the following message is returned:

ArcSDE instance is currently paused for upgrade, no new connections allowed now

 

Home

Copyright © Environmental Systems Research Institute, Inc. 2004 - 2010.