不安装Oracle客户端进行的ArcSDE的直连配置步骤

0
分享 2015-12-12
背景
总所周知,ArcSDE从技术层次上具有两种连接方式:应用服务连接和直连方式,具体这两种方式的原理以及如何配置可以查看具体的资料的介绍,在此不进行详细的介绍了。其中直连方式相对于应用服务连接在很多方面具有优势,是Esri美国一直推荐给客户使用的连接方式,但是这种连接方式在大型项目上,尤其是项目的架构为CS时,很难应用起来,原因是直连方式需要每台使用ArcEngine开发的应用的机器上安装数据库的客户端,这在大型项目中是所有人都不能接受的,因为:
(1) 需要安装客户端的机器太多,工作量太大,某些项目上可能会到几百台机器。
(2) 安装完客户端的配置比较繁琐,需要具备一定数据库专业技能的人才能胜任。
(3) 使用ArcEngine的客户大部分都不具备专业的数据库技能,因此不能完成这个任务。
(4) 开发商和厂商具备这个能力,但是地点太多,机器太多,实际运行的成本太高。
因此如果用一种全自动的方式,如在安装ArcGIS应用程序的过程将该过程完成就OK了。


原理

直连使用的是ArcEngine中的SDE的动态库直接连接的数据库,因此只需要找到SDE的需要用到的数据库的动态库以及相关的配置文件就可以了。由于Oracle高版本的客户端可以访问低版本的服务器端,因此只需要找到Oracle11G中所用到的动态库后就可以访问所有的Oracle的版本了。


具体步骤

1. 使用vmware或者hyperv创建一个windows7虚拟机,并在该机器上安装相应于windows版本的32bit的Oracle11G客户端,在安装类型选择“管理员”.

2. 到安装arcengine runtime的bin目录下找到动态库sdeora11gsrvr100.dll,使用VC的depends工具打开,如下图,



找到红框中所标示出的动态库,以及oraplc11.dll,将其单独拷贝出来放到应用程序的bin目录中。

3 将%ORACLE_HOME%/oracore和%ORACLE_HOME%/nls两个目录拷贝到应用程序的主目录中。

4 新建环境变量ORACLE_HOME,并将值设置成应用程序的主目录路径。

5.新建NLS_LANG环境变量,值为SIMPLIFIEDCHINESE_CHINA.ZHS16GBK.

6 连接方式如下图:





其中需要解释的是密码部分的格式是:
password@IP:Port/ServiceName

其中密码是用户的密码
IP为数据库服务器的IP
Port:为数据库服务器监听器所监听的端口
ServiceName为数据库服务器坚挺所支持的服务
Port和ServiceName可以通过自行通过lsnrctlstatus来查看,如果是管理比较严格的数据库,可以询问DBA。


需要注意的方面

1. oracle的客户端必须是32bit,因为ArcEngine的runtime和开发包都是32bit的。
2 oraplc11.dll动态库一定要拷贝出来,否则会出现一些问题。
3 连接的时候在service的地方一定要填写sde:oracle11g,因为你使用的是oracle11G客户端的动态库。
4 VC的depends工具我已经放到了http://download.csdn.net/detail/liufeng1980423/3999379了。



文章来源:http://blog.csdn.net/liufeng1980423/article/details/7177030

0 个评论

要回复文章请先登录注册