导航

ArcSDE 服务启动失败的解决方法

Posted on 2010-07-30 00:11  nowell  阅读(4073)  评论(0)    收藏  举报

今天下午由于项目上的需要,卸载了电脑上的ArcSDE for SQL server,然后安装ArcSDE for Oracle,但是在post installation的最后一步,也就是启动sde服务那一步,报“Operation Failed, Unable to start iomgr”的错误。之前在其他的电脑上也遇到过这问题,,最后是直接去服务里成功启动的sde服务。于是今天也未管,直接点finish。然后又尝试去系统的服务页面重新启动sde服务,结果此时却出现“ArcSDE 服务启动后又停止...”的提示,sde服务启动失败.上网搜了搜,这问题还挺普遍,解决方法还挺多,我逐一试了试都不行。看来只能靠自己了,于是自己去系统的“事件查看器”里查看了一下,事件描述里写着

“事件 ID ( 110 )的描述(在资源( esri_sde )中)无法找到。本地计算机可能没有必要的注册信息或消息 DLL 文件来从远程计算机显示消息。您可能可以使用 /AUXSOURCE= 标识来检索词描述;查看帮助和支持以了解详细信息。下列信息是事件的一部分: esri_sde, Connection to RDBMS failed.”

初步断定是sde连接oracle的问题,于是去sde的安装目录下查看了一番,在%ArcGIS%\ArcSDE\ora10gexe目录下发现了一个名为“sqlnet.log”的日志文件,打开后发现上面记载着SDE服务启动时的详细错误描述“

Time: 29-7月 -2010 17:48:32
Tracing not turned on.
Tns error struct:
  ns main err code: 12560
  TNS-12560: TNS: 协议适配器错误
  ns secondary err code: 0
  nt main err code: 530
  TNS-00530: 协议适配器错误
  nt secondary err code: 126
  nt OS err code: 0

大致可以判定是oracle监听程序出现了问题,于是在CMD中输入oracle的lsnrctl命令,查看监听的运行状态,结果出现不能识别命令的提示,这说明lsnrctl.exe程序不在指定的路径中(E:\oracle\product\10.2.0\db_1\BIN),很有可能是路径指定的不对,既然是路径的问题,那就有可能跟path环境变量的变量值有关,于是自己去系统变量里查看了一下path变量的值如下:

E:\oracle\product\10.2.0\client_1\bin;C:\Program Files\Java\jdk1.6.0_10\bin;C:\Program Files\Common Files\Autodesk Shared\;E:\Program Files\ArcGIS\ArcSDE\sqlexe\bin;C:\Program Files\Common Files\Thunder Network\KanKan\Codecs;c:\Program Files\Microsoft SQL Server\90\Tools\binn\;c:\Program Files\Microsoft SQL Server\90\DTS\Binn\;c:\Program Files\Microsoft SQL Server\90\Tools\Binn\VSShell\Common7\IDE\;c:\Program Files\Microsoft Visual Studio 8\Common7\IDE\PrivateAssemblies\;C:\Program Files\ThinkPad\ConnectUtilities;E:\Program Files\FME\

路径中只有oracle 客户端软件的bin文件路径,而客户端软件的bin文件路径中并没有lsnrctl.exe程序,于是断定path变量值中缺少对oracle企业版的bin文件夹路径的引用,从而导致lsnrctl命令不能被CMD所识别。在变量值的尾部加上“\;E:\oracle\product\10.2.0\db_1\BIN”后,重启电脑。然后再次在cmd中输入lsnrctl命令查看监听状态,此时命令已能被识别,查看状态发现并无异常,然后自己又再去去“服务”中尝试启动sde服务,发现这次启动成功了,sde可以用了!

之后自己总结了一下,造成“Operation Failed, Unable to start iomgr”以及“ArcSDE 服务启动后又停止...”错误的原因可能就是path环境变量值中没有引用oracle企业版的bin文件夹路径。sde服务在启动的过程中可能需要引用E:\oracle\product\10.2.0\db_1\BIN路径下的某些文件来关联oracle,那sde怎么获取这个路径呢?sde可能就是通过path环境变量的值来获取这个路径,进而引用oracle的某些文件进行后续的服务启动操作。如果path变量值中并未包含这个路径的话,自然就造成了”“esri_sde, Connection to RDBMS failed”的错误。

一般情况下,我们在安装oracle的时候,安装程序都会自动将这个路径添加到path变量值中,从而使得我们可以在CMD中运行oracle的各种操作命令.但是我本机的path变量值中却缺少这个重要路径,真让人崩溃,事后想了想,导致path变量值中没有bin路径的原因可能是:

1:我之前在配jdk的路径的时候不小心删了oracle的bin路径

2:本机先装了oracle企业版,后来又装了oracle客户端,造成path变量值那块的bin路径混乱,导致企业版的bin路径丢失。

我倒觉的第一点的可能性大些。

这个问题折腾了我一下午的时间,还好最后通过不懈的努力解决了这个“恶心”的问题。只是感觉自己的投入和产出不太和谐,呵呵

Technorati 标签: ArcSDE服务
友荐云推荐