ArcSDE程序服务介绍: ArcSDE是空间数据与GIS程序之间的一个重要的“通路”,它是一种中间件,使用它可以将ArcGIS等程序与普通关系数据库系统联系起来当作一个地理数据库使用,这些关系数据库既包括如ACCESS数据库,也包括类似ORACLE和SQLSERVER的分布式DBMS;同时ArcSDE for Coverages系统,也可以以只读的方式访问诸如Coverage、Shapefile、ArcSotrm等基于文件的数据。
ArcSDE是一种C/S结构的组件,它提供了两种数据连接架构,即两层和三层模型,一般我们都是使用的三层架构,如果用户需要使用前者,可以在ArcCatalog中选择“产生一个直接联结”,它是直接通过ODBC访问DBMS而不通过ArcSDE的数据服务器。
Sdemon命令可以允许管理员管理和监视ArcSDE服务,在SDE服务启动后,始终存在一个giomgr的SDE服务器进程,它负责监听连接请求(服务器名和端口)、验证连接(密码和用户)、给每个成功的连接分配一个独立的gsrvr进程,而gsrvr负责在客户端和服务器之间进行通讯(使用相同的服务器名和端口)。
ArcSDE是一种客户端/服务器模式的组件,存在几个需要注意的属性:
1. Home目录 它是一个被记录的路径,成为SDEHOME,这个目录中包含可执行文件,配置文件和动态共享库等。
2. 两个进程 giomgr和gsrvr(作用如前),当我们连接SDE数据库的时候,giomgr Service负责整个连接过程,比如寻找数据库和端口,到DBMS中查询SDE.SERVER_CONFIG表是否存在License记录等等。
3. 由于SDE走的是TCP/IP协议,因此服务器名和端口在通讯在起着重要的作用。服务建立后,服务名和端口号被存储在“C:\WINNT\system32\drivers\etc”的services文件中。它有两种形式:服务名:端口、IP:端口。
4. 配置参数 配置参数被保存在一个名为SDE.SERVER_CONFIG的表中,缺省的参数文件为giomgr.defs,它被存放在SDEHOME中的etc文件夹中。
安装ArcSDE Application Server是一件简单的事情,不过,如果中间迟迟搞不定,且你使用的是Windows系统,你只需要做两点:你的许可文件是否还有效;重启操作系统。
如何启动SDE服务:
(1). 使用正常服务启动程序
(2). 使用命令行的方式,如Sdemon –o start –p sde 参数配置: SDE服务的参数是可以被修改的,这个过程可以通过修改数据库中表或修改service.sde或dbinit.sde两个文件,这两个文件都被保存在SDEHOME中的etc文件夹中。
对于一个SDE服务而言,外界程序联系到它的方法是通过TCP/IP协议的,因此,在默认的情况下,当我们打开<SDEHOME>\ora9iexe\etc\service.sde文件,我们会发现下面的代码:
esri_sde 5151/tcp #ArcSDE 9.0 for Oracle9i
这就是名为esri_sde的SDE服务的端口号,当执行Sdemon –o start –p sde时,系统会寻找这个文件的参数,看看是否匹配。如果匹配再验证密码和用户。
在一台机器上可以同时存在多个SDE服务,这些服务名将不一样,占用的端口也不一样,但是它们的参数都保存在service.sde文件,如: esri_sde2 5152/tcp #ArcSDE 9.0 for Oracle9i
SDE服务需要从dbinit.sde文件中读取一些系统的环境变量,以获得必要的关系数据库信息,如: # Oracle SID for service esri_sde. set ORACLE_SID=SDE 上面的语句指明了SDE服务使用的是那一个ORACLE数据库例程。下面是获得全部参数的命令: Sdemon –o info –I config 用户也可以打开SDE.SERVER_CONFIG表,查看其中的具体参数。
服务器的管理:服务器的管理包括服务的启动、暂停和关闭两个操作,在WINDOWS平台下,服务的启动关闭,例程的关闭都可以可视化实现,下面我们将介绍使用命令行的方式:
1. 启动一个远程SDE服务 Sdemon –o start –p mypassword –s service –i arcsde 上句中的-p后为密码,-s后为远程机器名,而-i为SDE服务名
2. 暂停一个服务 Sdemon –o pause –p mypassword
3. 重新启动 Sdemon –o resume –p mypassword
4. 关闭一个giomgr进程 Cd %SDEHOME%\tools Killp 100 (100为进程号) Do you really want to kill process with pid 100(y/n)? Y
5. 关闭一个服务 Sdemon –o shutdown –p mypassword
6. 关闭所有用户会话 Sdemon –o kill –t all
如果你忘记了命令,可以键入Sdemon -?来获取信息