查看: 7282|回复: 25

Jdbc 连接oracle 的妖怪问题

[复制链接]
论坛徽章:
2
生肖徽章2007版:鸡
日期:2008-01-02 17:35:53生肖徽章2007版:鼠
日期:2008-01-02 17:35:53
跳转到指定楼层
1#
发表于 2007-2-13 16:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近公司的一台ORACLE8.1.7的server无法通过JDBC进行连接,具体情况如下:在同一台客户机上使用sqlplus/plsqldeveloper/toad都可以进行正常的连接,但是使用相同的用户名/密码,通过jdbc进行连接就会报ORA-01017 invalid username/password; logon denied的错误,但可以肯定的是用户名/密码肯定没有问题;况且之前Application Server和DB server都没有进行过任何的修改维护,jdbc的连接都很正常。
    重启DB之后,jdbc仍然无法进行连接,也试过不同版本的jdbc for oracel 的dirver,都不行。使用tomcat的连接池机制的话,一开始也是连接不上,但是过很长时间之后,发现通过tomcat的连接池能够慢慢的一个个的连上去。
    哪位大侠有遇到过类似的问题,请赐教, 谢谢!
论坛徽章:
131
2006年度最佳技术回答
日期:2007-01-24 12:58:48福特
日期:2013-10-24 13:57:422014年新春福章
日期:2014-02-18 16:41:11马上有车
日期:2014-02-18 16:41:11马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14马上加薪
日期:2014-02-19 11:55:142013年新春福章
日期:2013-02-25 14:51:24
2#
发表于 2007-2-13 16:36 | 只看该作者
似乎是连错DB了

使用道具 举报

回复
论坛徽章:
2
生肖徽章2007版:鸡
日期:2008-01-02 17:35:53生肖徽章2007版:鼠
日期:2008-01-02 17:35:53
3#
 楼主| 发表于 2007-2-13 16:58 | 只看该作者
最初由 rollingpig 发布
[B]似乎是连错DB了 [/B]


这个应该不会吧,IP和port能够定位到唯一数据库,何况使用相同tnsnames连接串sqlplus能够连接上,就算连错db了,也应该能连上。对了这台db有standby server,都在外网,通过端口映射访问,映射端口是都是54888(oracle的监听端口),但是映射的ip不同

使用道具 举报

回复
论坛徽章:
16
ITPUB元老
日期:2006-12-29 17:11:00秀才
日期:2015-12-25 15:31:102015年新春福章
日期:2015-03-06 11:57:31沸羊羊
日期:2015-03-04 14:43:432012新春纪念徽章
日期:2012-01-04 11:49:54ITPUB十周年纪念徽章
日期:2011-11-01 16:19:412010新春纪念徽章
日期:2010-03-01 11:21:02祖国60周年纪念徽章
日期:2009-10-09 08:28:002009新春纪念徽章
日期:2009-01-04 14:52:28生肖徽章2007版:鼠
日期:2008-01-02 17:35:53
4#
发表于 2007-2-13 17:46 | 只看该作者
你用的是oracle的driver 还是第三方的?

使用道具 举报

回复
论坛徽章:
2
生肖徽章2007版:鸡
日期:2008-01-02 17:35:53生肖徽章2007版:鼠
日期:2008-01-02 17:35:53
5#
 楼主| 发表于 2007-2-13 18:08 | 只看该作者
最初由 cyr1974 发布
[B]你用的是oracle的driver 还是第三方的? [/B]


oracle的driver和jdk1.4的都试过,还有tomcat

使用道具 举报

回复
论坛徽章:
1
会员2007贡献徽章
日期:2007-09-26 18:42:10
6#
发表于 2007-2-13 18:25 | 只看该作者
确实比较怪.我想你是通过程序调JDBC的.出错也是反映到程序.有可能是程序调用了自己的API。而不是调用appliation server的jdbc.所以才会这样的错误..你找application server的engineer 跟跟log

使用道具 举报

回复
论坛徽章:
3966
马上加薪
日期:2022-06-27 19:51:25马上有车
日期:2022-06-27 19:51:27马上有房
日期:2022-06-27 19:51:27马上有车
日期:2022-06-27 19:51:28青年奥林匹克运动会-柔道
日期:2022-06-27 19:51:28青年奥林匹克运动会-七人制橄榄球
日期:2022-06-27 19:51:28青年奥林匹克运动会-高尔夫
日期:2022-06-27 19:51:28青年奥林匹克运动会-三人篮球
日期:2022-06-27 19:51:28青年奥林匹克运动会-三人篮球
日期:2022-06-27 19:51:28青年奥林匹克运动会-羽毛球
日期:2022-06-27 19:51:28
7#
发表于 2007-2-13 20:45 | 只看该作者
换个机器试试。

使用道具 举报

回复
论坛徽章:
2
生肖徽章2007版:鸡
日期:2008-01-02 17:35:53生肖徽章2007版:鼠
日期:2008-01-02 17:35:53
8#
 楼主| 发表于 2007-2-13 20:58 | 只看该作者
同样的程序修改成连接其他数据库就完全没有问题;不过最后发现该数据库lsnrctl status的结果与其他数据库不太一样,结果如下:
[oracle@localhost admin]$ lsnrctl status

LSNRCTL for Linux: Version 8.1.7.0.0 - Production on 13-FEB-2007 20:47:34

(c) Copyright 1998 Oracle Corporation.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=54888)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 8.1.7.0.0 - Production
Start Date                12-FEB-2007 09:43:57
Uptime                    1 days 11 hr. 3 min. 37 sec
Trace Level               off
Security                  OFF
SNMP                      OFF
Listener Parameter File   /app/oracle/product/817/network/admin/listener.ora
Services Summary...
  PLSExtProc            has 1 service handler(s)
  logdb         has 1 service handler(s)[/COLOR]
  logdb         has 2 service handler(s)[/COLOR]
  logdb         has 2 service handler(s)[/COLOR]
The command completed successfully

可以看到上面service logdb有三行结果,不知道正常不,二其他数据库的lsnrctl status的结果都如下:
[oracle@localhost admin]$ lsnrctl status

LSNRCTL for Linux: Version 8.1.7.0.0 - Production on 13-FEB-2007 20:56:30

(c) Copyright 1998 Oracle Corporation.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost.localdomain)(PORT=1522)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 8.1.7.0.0 - Production
Start Date                17-AUG-2006 10:50:52
Uptime                    180 days 10 hr. 5 min. 38 sec
Trace Level               off
Security                  OFF
SNMP                      OFF
Listener Parameter File   /app/oracle/product/817/network/admin/listener.ora
Services Summary...
  PLSExtProc            has 1 service handler(s)
  ldb           has 1 service handler(s)[/COLOR]
The command completed successfully
可以看到services Summary...下面的service ldb只有一行。

但是这两个数据库的listener.ora文件完全一样(除了几个关键点,如port, global_dbname, service_name)啊[/COLOR]

使用道具 举报

回复
论坛徽章:
2
生肖徽章2007版:鸡
日期:2008-01-02 17:35:53生肖徽章2007版:鼠
日期:2008-01-02 17:35:53
9#
 楼主| 发表于 2007-2-13 23:38 | 只看该作者
已经发现当刚刚重启完listener得时候,lsnrctl stat显示得service logdb只有一行,这时候jdbc是能够连接上去的,但是过一分钟左右就发现已经有三行service logdb了,此时jdbc就无法连接了,出现开始的时候我描述的情况。
  该数据库server上面只安装了logdb一个数据库,而且运行在dedicated模式下,除了有一个standby server(别的机器上面)相连外没有其他特别之处。该server及其stby server都有安装了两块网卡,分别配置成局域网和外网IP。
  到现在还不知lsnrctl stat为何会显示的如前面描述的那样,而这仿佛正是问题的关键所在[/COLOR] ,哪位大侠有此经验,还请不吝赐教。

使用道具 举报

回复
论坛徽章:
2
生肖徽章2007版:鸡
日期:2008-01-02 17:35:53生肖徽章2007版:鼠
日期:2008-01-02 17:35:53
10#
 楼主| 发表于 2007-2-14 09:55 | 只看该作者
顶一下先

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表