甲骨文JDBC:无效的用户名/密码(ORA-01017)甲骨文JDBC:无效的用户名/密码(ORA-

2019-05-12 11:51发布

我有一个Oracle数据库服务器的JDBC连接一个奇怪的问题。

我们已经将Tomcat服务器运行的应用程序。 这些应用程序中使用Oracle数据库。 所有应用程序都使用相同的凭据。

应用了整整一天罚款运行。 晚上没有活动。 在早上,我们得到一些(2或3)ORA-01017(无效的用户名/密码)的错误时,试图将自己重新连接到数据库的应用程序。

然后重新连接的工作原理和应用程序将运行正常。

这适用于某些天(5天左右),然后一个或多个应用程序块的! 所有重新连接尝试失败。

我们跟踪的网络通信,发现如果连接失败, ORA-01017 NO CREDENTIALS的发出。

当然,没有一个晚上接触到系统。

一个解决方法的尝试是我们每天早晨重新启动Tomcat服务器6点钟清理每一个连接高速缓存或池。 它并不能帮助。

怎么了? 有任何想法吗?

在完全堵塞的外观续5天的间隔(同时重申每一天)看起来很奇怪,我。

配置

数据库Oracle 10.2,JDBC驱动11.2薄,Tomcat的6.0.24,JDK 6,操作系统为Windows,一些应用是用于Avaya语音门户5.0对话框。

我们自己的(非VP)应用程序使用简单的连接(无池)。


该系统最初设置与apserver和Tomcat服务器之间的WAN Windows 2003服务器上。

现在的系统迁移到数据库服务器向附近的Linux版本(CentOS)服务器和工作正常。 无ORA-01017了。

Answer 1:

奇。 一些想法:

  1. 登录的用户名和密码,几天只是为了确保它们是正确的。 代码中的一些bug可能会覆盖你不要指望一个值。

  2. 考虑到使用JNDI与在Tomcat提供一个连接池。 DBCP有一些非常高级选项来检查连接是否还活着,如何重新连接。 在这之后,你不应该看到在你的日志的任何连接相关的问题了。 这也将提高安全性,因为没有任何的应用程序需要知道DB的密码了。

  3. 这可能是与资源泄漏的问题(如果发生的应用程序不会返回的连接),但是我希望一个不同的错误信息,然后。

  4. 有些数据库(DB2,H2)允许创建视图,使从像本地表可见其他数据库的远程表。 不知道甲骨文是否支持这一点,但如果这样做,那么也许用户名/密码为这个远程表是错误的。

也可以考虑在这篇博客文章的要点: 甲骨文ORA-01017的提示

乍一看,没有在后可能会导致你的问题,但也许有些脚本操纵tnsnames.ora (例如分配一个新的副本)。

或DBA禁用所有用户的日常备份的时间。



Answer 2:

我会检查Oracle监听和跟踪日志。 亚伦Digulla说,这听起来像一些资源枯竭。



文章来源: Oracle JDBC : invalid username/password (ora-01017)