快速浏览:ArcSDE 服务
本主题将介绍 ArcSDE 服务的工作原理以及当客户端使用 ArcSDE 服务进行连接时将发生哪些状况。
ArcSDE 服务的工作原理
使用 ArcSDE 服务(又称为 ArcSDE 应用程序服务器)连接到数据库时,每个 ArcSDE 服务都会通过 giomgr 进程监听专用 TCP/IP 服务名称和端口号上的用户连接。默认服务名称为 esri_sde,默认端口号为 5151。
服务名称和端口号必须添加至 $SDEHOME/etc (Linux) 或 %SDEHOME%\etc (Windows) 中的 services.sde 文件中。有关此文件的详细信息,请参阅 services.sde 文件。还必须添加相同条目至操作系统服务文件。
在 Windows 系统中,可从 Windows 服务 菜单启动和停止 ArcSDE 服务。对于 Linux 和 UNIX,必须始终使用 sdemon 命令。
多数受支持的数据库管理系统 (DBMS) 都允许一台服务器中存在多个数据库。每个数据库都必须拥有自己的 ArcSDE 服务,但同时允许多个客户端通过该 ArcSDE 服务与数据库建立连接。
当客户端应用程序使用 ArcSDE 服务建立连接时会发生哪些状况?
ArcGIS 客户端应用程序使用 ArcSDE 服务连接到企业级地理数据库时将会依次发生以下事件。
- giomgr 进程监听其 TCP/IP 端口处的连接。
处理连接请求之前,giomgr 必须处于监听状态。确保启动和监听 ArcSDE 服务。在 UNIX 和 Linux 上,使用 sdemon –o 状态确定 giomgr 进程的状态。
在 Windows 上,可从服务菜单中检查 ArcSDE 应用程序服务的状态。打开 Windows 管理工具。双击服务图标调用服务菜单。在状态字段的下方,ArcSDE 服务的状态应显示为 STARTED。在 Windows 中,除服务菜单外,还可在 MS-DOS 命令工具中使用 sdemon –o 状态命令。
- 应用程序向 ArcSDE 服务提交连接请求。
随后,giomgr 进程将连续对连接请求做出响应。giomgr 进程需要约 1 至 5 秒的时间验证连接请求,具体取决于您的 DBMS。当多个应用程序尝试同时获取一个连接时,其中一些应用程序可能会超出 TCP/IP 75 秒的标准超时限制。
- giomgr 进程对应用程序所在计算机的时钟时间与自身所在主机的时钟时间进行比较。
如果应用程序所在计算机的时钟时间与服务器时钟时间的差值大于 MAXTIMEDIFF 值(以秒为单位),giomgr 进程将禁止该应用程序进行连接。MAXTIMEDIFF 在 SERVER_CONFIG 表中设置。有关详细信息,请参阅 SERVER_CONFIG 系统表。
- giomgr 对客户端应用程序的版本和 ArcSDE 服务的版本进行比较。
如果客户端应用程序的版本比应用程序服务器的版本旧,则将拒绝连接,ArcGIS 10 客户端连接至 10.1 或更高版本应用程序服务器的情况除外。
- giomgr 进程启动为应用程序提供服务的 gsrvr 进程。
giomgr 进程必须能够生成一个 gsrvr 进程。如果已达到由当前操作系统限制的最大进程数,此操作将失败并且不会创建任何 gsrvr 进程。
- gsrvr 进程连接到 DBMS。
向 giomgr 进程提交连接请求时,客户端应用程序必须提供有效的用户名、密码和数据库名称(Oracle DBMS 不需要数据库名称)。无效条目将被拒绝,同时显示错误 -9 SE_INVALID_USER。
- giomgr 进程将应用程序附加到 gsrvr 进程。
giomgr 进程将应用程序附加到 gsrvr 进程后,将继续监听新的连接请求并执行其他 ArcSDE 服务管理任务。应用程序与 DBMS 之间的全部通信均将通过 gsrvr 进程执行。