首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Oracle :无效用户名/密码(ora-01017)

Oracle :无效用户名/密码(ora-01017)
EN

Stack Overflow用户
提问于 2011-12-08 17:42:49
回答 4查看 11.6K关注 0票数 5

到oracle数据库服务器的jdbc连接有一个奇怪的问题。

我们在tomcat服务器上运行应用程序。这些应用程序使用oracle数据库。所有应用程序都使用相同的凭据。

应用程序一整天运行良好。晚上没有活动。早上,当应用程序试图重新连接到数据库时,我们会收到一些(2或3) ORA-01017 (无效用户名/密码)错误。

然后重新连接工作,应用程序将正常运行。

这可以工作一些天(大约5天),然后一个或多个应用程序块!所有重连接尝试都失败。

我们已经跟踪了网络通信,并发现如果连接失败与ORA-01017 NO CREDENTIALS发送的地方。

当然,没有人会在晚上接触到系统。

解决办法之一是,我们每天早上6点重新启动tomcat服务器,以清理每个连接、缓存或池。这没什么用。

出什么事了?有什么想法吗?

连续5天的间隔出现完全堵塞(同时每天休息),在我看来很奇怪。

Config

数据库Oracle 10.2,JDBC驱动11.2薄,tomcat 6.0.24,JDK 6,OS是windows,一些应用程序是用于Avaya语音门户5.0的对话框。

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

系统最初是在Windows 2003服务器上安装的,在apserver和tomcat服务器之间有广域网。

系统现在被迁移到靠近数据库服务器的linux (CentOS)服务器上,运行良好。再也没有奥拉-01017了。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-12-19 16:07:56

很奇怪。一些想法:

  1. 将用户名和密码记录几天,以确保它们是正确的。代码中的某些bug可能会覆盖一个您不期望的值。
  2. 考虑将JNDI与Tomcat提供的连接池一起使用。DBCP有一些非常高级的选项来检查连接是否仍然有效以及如何重新连接它。之后,您就不应该再在日志中看到任何与连接相关的问题了。这也将提高安全性,因为所有的应用程序都不需要知道DB密码了。
  3. 这可能是资源泄漏的问题(如果应用程序从未返回连接就会发生),但是我希望有一个不同的错误消息。
  4. 某些数据库(DB2、H2)允许创建视图,使来自其他数据库的远程表与本地表一样可见。不确定Oracle是否支持这一点,但是如果支持,那么这个远程表的用户名/密码可能是错误的。

还请考虑以下博客文章中的要点:Oracle 01017技巧

乍一看,文章中的任何内容都不会导致您的问题,但可能有些脚本正在操作tnsnames.ora (例如分发一个新的副本)。

或者DBA在每天备份时禁用所有用户。

票数 0
EN

Stack Overflow用户

发布于 2020-10-08 12:44:06

对于我来说,不兼容的OracleDriver版本导致了这个问题,您的应用程序应该手动注册oracle驱动程序(我需要使用的jar ),或者应该在应用程序的类路径中注册agter 6 ojdbc.jar。因此,google兼容的驱动程序版本用于安装oracle,或者在pom文件中声明它(需要插件将其放入结果jar中),然后从代码中手动引用它,或者将ojdbc.jar放在您的jar可以看到的有用链接的某个位置:

关于连接到oracle:https://www.codejava.net/java-se/jdbc/connect-to-oracle-database-via-jdbc

关于java类路径:https://docs.oracle.com/javase/7/docs/technotes/tools/windows/classpath.html

票数 1
EN

Stack Overflow用户

发布于 2012-02-10 00:42:21

我会检查Oracle侦听器和跟踪日志。正如亚伦·迪古拉所说,这听起来确实是资源枯竭。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8435234

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档