ArcSDE 服务疑难解答

由于系统环境问题,出现的大部分问题都与启动 ArcSDE 服务有关。通常,在安装或配置软件的过程中,会遗漏一些关键步骤。

此主题中的疑难解答提示涉及多个不同的管理命令。有关如何使用这些命令的详细信息,请参阅“管理命令参考”。

在“ArcSDE 开发人员帮助”中,对 giomgr 退出代码进行了说明。ArcSDE 组件安装 DVD 及地理数据库资源中心网站中均提供了“ArcSDE 开发人员帮助”。

识别问题

UNIX 服务器上 ArcSDE 服务的疑难解答

系统路径变量问题

若系统路径变量设置不当或尚未进行设置,则会出现以下错误。有关如何为您的 ArcSDE 产品设置路径变量,请参阅《ArcSDE 安装指南》。

ArcSDE 服务已启动

若未安装 ArcSDE 服务级别许可,则应用程序服务器不会启动。您必须使用 keymanager 管理命令来安装级别许可。要获取有效的级别许可,请联系“ESRI 客户支持”。

若输入/输出 (I/O) 管理器已运行,则会显示以下消息:

SDE Already Running ArcSDE server license has not been installed

临时文件权限问题

若存在任何不归 ArcSDE 管理员所有的 ArcSDE 临时文件,则会返回以下错误消息:

ERROR: Cannot Initialize Shared Memory (-79) Delete /tmp/<service name> and /tmp<service name>.lock if present. Could not start ArcSDE - Check Network, $SDEHOME disk, DBMS settings and dbinit.sde.

要修复此错误,请删除临时文件 /tmp/<服务名称> 和 /tmp/<服务名称>.lock。例如,若服务名称为 ESRI_sde,则您可删除文件 /tmp/ESRI_sde 及 /tmp/ESRI_sde.lock。您可能需要以根用户身份登录才能删除这些文件。

已从 /tmp 中删除文件

启动 ArcSDE 服务之后,若存储在 /tmp 目录下的文件被删除,则无论用户是否与 ArcSDE 服务连接,ArcSDE 服务都将运行失败。该服务依赖于 UNIX 套接字协议文件(在 /tmp 目录下创建)。通常情况下,不应删除 /tmp 目录下的文件。不过,若您一定要这样做,应在此之前先关闭 ArcSDE 服务。有关如何执行此操作的说明,请参阅停止 Linux 或 UNIX 上的本地 ArcSDE 服务停止 Windows 上的本地 ArcSDE 服务停止远程 ArcSDE 服务

DBMS 相关问题

Solaris server 上的 SE_OUT_OF_MUTEXES (-109) 错误

Solaris 操作系统使用文件来实现 ArcSDE 所使用的 POSIX 共享信号灯。如果操作系统出现故障或断电之后这些文件被遗留下来,有时可能会引发许多问题。这些文件的位置是由 Solaris 操作系统控制的。它们位于 /tmp 或 /var/tmp 目录下,如下所示:

/tmp/.SEMD/ SDE_9.0_<instance>_iomgr_shared_semaphore /tmp/.SEML/ SDE_9.0_<instance>_iomgr_shared_semaphore

或者

/var/tmp/.SEMD/ SDE_9.0_<instance>_iomgr_shared_semaphore /var/tmp/.SEML/ SDE_9.0_<instance>_iomgr_shared_semaphore

在操作系统出现故障后,若无法启动 ArcSDE 服务并接收到 -109 错误,则可能是因为这两个共享信号灯文件已存在。若您发现这些文件中的任何一个文件位于 /tmp 或 /var/tmp 下,请删除这些文件并尝试重新启动 ArcSDE 服务。

Windows 服务器上 ArcSDE 服务的疑难解答

下面列出了在 Windows 上启动 ArcSDE 服务时经常遇到的错误。此列表中包含错误代码及可能的原因(若适用)。

997 启动 esri_sde 服务时出错

如果 ArcSDE 的安装或配置不正确或不完整,则可能会导致该错误:

"ESRI_sde service failed during initialization.  Please check event log or error log files.  Error starting ESRI_sde service(997)  Could not start ArcSDE — Check Network, $SDEHOME disk, DBMS settings"

解决方案

1068 依存关系失败

找不到 ArcSDE 服务试图连接的 DBMS。最有可能导致该问题的原因是

请确保 DBMS 服务器存在且服务已启动,并检查 DBMS 连接信息以确保其正确。若错误依然存在,则请使用 sdeservice 命令删除现有的 ArcSDE 服务,并重新创建 ArcSDE 服务。

1069 登录失败

通常,该错误表示:启动 ArcSDE 服务的 Windows 用户既不是 Windows 管理员,也不是 Windows 高级用户。还有可能是密码不正确。

若未使用系统管理员帐户启动该服务,则需确保该用户帐户是管理员组或高级用户组的成员。

1072 注册表忙

在涉及 ArcSDE 服务条目的注册表中,出现了一些问题。也许是运行了带删除操作的 sdeservice,或者已使用注册表编辑器开启了该服务。还有可能是对象链接及嵌入数据库 (OLE DB) 提供程序有问题。有关 OLE DB 提供程序的正确安装版本,请参阅安装指南。

1075 服务依存关系已删除

ArcSDE 服务无法定位应与其连接的 DBMS 服务。请确保 DBMS 服务存在且已被启动。若问题依然存在,则请使用 sdeservice 命令删除 ArcSDE 服务,并重新创建该服务。

2140 内部 Windows 错误

ArcSDE 服务无法完成启动进程。请检查 sde 错误日志文件 - %SDEHOME%\etc\sde_<sde_instance>.log,以获取有关 ArcSDE 服务未启动的可能原因。

可能的原因及其解决方案

运行 ArcSDE 后安装时遇到错误。操作失败,无法启动 iomgr。DBMS 错误代码: 2714

在已创建服务并已尝试启动该服务后,当试图使用“安装后配置”向导启动服务时,您就会在 SQL Server 数据库中看到此错误。

出现该错误的原因可能是由于地理数据库名称被更改了。一种可能会发生此情况的情形是:您出于测试目的,在 SQL Server 的相同实例中,以不同的名称对当前数据库进行备份和恢复。

ArcSDE 地理数据库一经创建,就无法对其进行重命名。因为在数据库对象中,原始数据库的名称为硬编码形式。若使用存储的步骤更改了数据库名称,或者恢复后的数据库的名称不同于原始数据库名称,则该数据库的 ArcSDE 服务不会启动。

解决方案

将数据库重命名为其原始名称。请执行以下步骤:

  1. 关闭接收更改的服务。
  2. 在 SQL Server Management Studio 中发出以下查询:

    ALTER DATABASE <database_name> MODIFY NAME = <new_database_name> 若由于现有数据库共用了相同名称而导致无法进行该查询,则必须改用不同的路径。若最初的目的是为进行测试而创建了一个重复的数据库,则创建的新数据库必须使用新名称。应使用 ArcSDE 的“后安装配置”向导来填充资料档案库、授权软件及创建服务。然后,可于 ArcCatalog 中在两数据库之间复制数据。

gsrvr.exe - DLL 初始化失败或 gsrvr.exe - 应用程序错误:正常初始化应用程序失败

在 Windows 中,ArcSDE 服务以非交互桌面形式启动。名为 SharedSection 的 Windows 初始化参数用于设定分配给非交互桌面的堆内存上限值。若您接收到此错误消息,可能需要更改 SharedSection 参数。

SERVER_CONFIG 表中的 CONNECTIONS 参数也将限制单个 ArcSDE 服务允许的并发连接数量,但可能需要增大该参数值。


3/7/2012