Oracle的oci和thin的不同

今天,在配置开发环境的时候,出现了一个问题。
按照常规,修改了平时填写Oracle SID或者SERVICE_NAME的地方,启动Jboss
报错:java.sql.SQLException: ORA-12154: TNS:could not resolve the connect identifier specified
不能识别指定的连接标识符……

仔细检查一遍,发现问题,在配置文件里面怎么看不到在哪设置ip地址跟端口号?
找原来的项目的连接标识符,对比如下:
原来的是jdbc:oracle:thin:@172.0.0.1:1521:orcl
现在的是jdbc:oracle:oci:@land
thin变成了oci,原来的ip地址跟端口号没了

立马反映过来,下面的land就是就是配置Oracle客户端时候的连接字符串,oci连接oracle方式类似于PLSQL Developer连接oracle,land包含了IP、端口、SID信息。
修改配置文件,把填的SID改成自己定义的服务别名,搞定!


总结:
1、使用oci方式连接,需要安装Oracle客户端(网上有精简版本的,down下来,配置一下环境变量就ok)。使用thin方式就不需要。因此,个人感觉还是thin方式方便。
2、原理上分析:thin方式是纯java实现tcp/ip的通讯;而oci方式,客户端通过native java method调用c library访问服务端,而这个c library就是oci(oracle called interface),因此这个oci总是需要随着oracle客户端安装
3、驱动类别不同,oci是二类驱动,thin是三、四类驱动。
4、性能方面,没研究过,有待发现。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值