通过SDE服务来连接Oracle数据库,SDE服务存在很多不稳定的地方。当连接SDE的用户数多了的时候经常出现故障。为了避免这种情况,SDE提供了直连Oracle的方式,即通过Oracle的连接方式来连接
直连的优点:
1) 不管理ArcSDE服务,不需要安装ArcSDE软件
直连数据库驱动不需要管理ArcSDE服务,不需要安装、配置和启动中间进程。
2) 为可伸缩的系统提供更多的选择
oracle客户端卸载步骤直连架构将ArcSDE组件的功能迁移到桌面执行,移除了服务器端的ArcSDE负载,卸载了20%-40%的负载,释放更多的资源可供DBMS使用,为数据库服务器提供了更好的可伸缩性。
3) 直连速度更快 直连在客户机上执行处理,比服务器端处理更快。与客户机上执行处理相比,服务器端执行要同时处理来自许多客户机的请求,然后把计算结果需通过网络传送到客户机。降低了服务器端内存的需求
直连需要注意问题:
1.从10.1以后,访问SDE推荐采用直接连接数据库的形式,因此连接数据库也就选用了各自的数据库客户端进行访问管理,因此,Oracle Client是必须安装的
2.采用直连方式连接数据库,并不需要安装ArcSDE
直连设置连接参数:
IPropertySet propertySet = new PropertySetClass();
propertySet.SetProperty("SERVER", server);
propertySet.SetProperty("INSTANCE", instance);
propertySet.SetProperty("USER", user);
propertySet.SetProperty("PASSWORD", password);
propertySet.SetProperty("VERSION", version);
IWorkspaceFactory2 workspaceFactory = new SdeWorkspaceFactoryClass();
IWorkspace workspace = workspaceFactory.Open(propertySet, 0);
10.1
1. INSTANCE sde:oracle11g:192.168.1.198/orcl (oracle10g或oracle9i)(数据库是默认端口号1521时)
INSTANCE sde:oracle11g:192.168.1.198:1622/orcl (数据库不是是默认端口号1521,而是1622时)
如果数据库端口是默认端口1521则ip后不能带端口号, 否则报错;如果不是默认端口1521,则需要带上端口 如:sde:oracle11g:192.168.1.198:1622/orcl
2. INSTANCE sde:oracle11g:198
其中198为oracle net manager 配置的 名称
3. INSTANCE sde:oracle11g
PASSWORD pass@198
在我们系统中 instance 对应的是 服务
9.3
INSTANCE sde:oracle11g (oracle9i oralce10g,服务器的oracle版本)
PASSWORD pass@198 (198,oracle netmanager 配置的服务命名)
或者如格式:
INSTANCE sde:oracle11g
PASSWORD sde@192.168.1.198:1521/orcl
直连出错分析:
1.错误描述:Operation Failed
此种错误一般出现在直连字符串出现错误时 特别是instance字符串格式错误时
2.Cannot connect to database because the database client software failed to load. Be sure the database client software is installed and configured correctly.
如果机器数据库客户端安装无问题,但依然报此错误,则说明直连程序所在目录有可能存在oracle 相关dll(例如 oci.dll),其版本与字符串中 oracle描述版本不匹配
有两种方法可解决此问题
a. 相关oracle dll 版本与直连连接字符串oracle描述,与服务器oracle版本保持一致,此种方法是最稳妥的方式。直连对服务器,客户端的版本一致性要求比较高
b. 连接字符串中 描述与 程序所在目录中 oracle 相关dll 版本一致.如:服务器是oracle11g,oci.dll 是 oracle9i,则 连接字符串(instance)改成 sde:oracle9i:192.168.1.198/orcl 连接也可成功,但是否有后续的问题不能保证
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论