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

2024-04-18

我在与 Oracle 数据库服务器的 jdbc 连接上遇到了一个奇怪的问题。

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

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

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

这可以持续几天(大约 5 天),然后阻止一个或多个应用程序!所有重新连接尝试都会失败。

我们跟踪了网络通信并发现如果连接失败ORA-01017 NO CREDENTIALS发送到哪里。

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

一种解决方法是,我们每天早上 6 点重新启动 tomcat 服务器,以清理每个连接缓存或池。这没有帮助。

怎么了?有任何想法吗?

持续 5 天出现完全阻塞的间隔(每天都重复)对我来说看起来很奇怪。

Config :

数据库 Oracle 10.2、JDBC Driver 11.2 Thin、tomcat 6.0.24、JDK 6,操作系统为 windows,部分应用程序为 Dialogs for the Avaya Voice Portal 5.0。

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


该系统最初安装在 Windows 2003 服务器上,apserver 和 tomcat 服务器之间有 WAN。

现在系统已经迁移到数据库服务器附近的linux(CentOS)服务器上,并且工作正常。不再有 ORA-01017。


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

关于连接oracle db:https://www.codejava.net/java-se/jdbc/connect-to-oracle-database-via-jdbc 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 https://docs.oracle.com/javase/7/docs/technotes/tools/windows/classpath.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Oracle JDBC:用户名/密码无效 (ora-01017) 的相关文章

  • 从 Map 中找出给定值的键的更快方法?

    我想从 HashMap 中找出给定值的键 目前我必须遍历所有键并检查其在映射中的值 有没有更快的方法 用于执行此操作的替代数据结构是BiMap来自谷歌集合 API API 文档是here http google collections go
  • Spring boot + hikari - dataSource 或 dataSourceClassName 或 jdbcUrl 是必需的问题

    尝试启动 Spring 应用程序时出现以下错误 ERROR 5908 main com zaxxer hikari HikariConfig HikariPool 1 dataSource or dataSourceClassName or
  • 当按下批准或取消按钮时,如何阻止 JFileChooser 关闭?

    我使用 JFileChooser 的 showOpenDialog 方法来打开文件 如何将 ActionListener 附加到批准按钮JFileChooser以及如何停止这个对话框 单击 批准 按钮且侦听器完成后关闭 现在我有 publi
  • maven依赖插件忽略依赖版本? [复制]

    这个问题在这里已经有答案了 在我看来 maven 依赖插件在计算依赖列表时行为不当 假设这 3 个项目 base1
  • Eclipse 插件:应有的自动完成功能

    我有一个问题 有多种可能的解决方案 我正在学习计算机科学 目前正在担任实习生 我的任务是为 Android 和 iOS 制作一个商业应用程序 我现在已经使用 Visual studio 2010 工作了 2 年 Xcode 相当相似 所以这
  • 在Java中,如何在单线程程序中抛出ConcurrentModificationException? [复制]

    这个问题在这里已经有答案了 我正在读这篇文章 Java常见并发问题 https stackoverflow com questions 461896 what is the most frequent concurrency problem
  • Java util Logger 未写入文件

    我为我的应用程序编写了一个愚蠢的记录器 它将信息 警告和严重消息写入日志文件 前一段时间它工作得很好 但突然间 它无缘无故地停止工作了 如果日志文件不存在 它会继续创建该文件 但不写入任何内容 我找不到它现在不起作用的原因 我会感谢一些帮助
  • Java Swing - 在运行时动态切换语言环境

    我了解如何国际化 java 程序 但我有一个问题 我的程序中的语言可以随时切换 但我的程序可以存在多种状态 这意味着它可能会也可能不会打开多个 JLabels JPanel JFrame 等 是否有一个类或方法可以将当前的 GUI 更新为切
  • Android ImageView未加载

    我正在使用 android imageView 并将图像放入可绘制文件夹中 并将 imageView 源更改为该图像 但它没有在预览面板中显示图像 当我在 android studio 中打开图片时 它显示这样的错误 但我可以在电脑桌面上打
  • 将 .cer 格式的证书添加到 .bks 密钥库中

    我需要将 cer 格式的证书添加到 BKS 密钥存储中 SO 上对此进行了描述 如何将 cer 转换为 BKS https stackoverflow com questions 21284466 how to convert cer to
  • SQLPLUS 保存到文件

    我必须为我的数据库类使用 SQLPLUS 我们的第一个作业是简单的保存 我按照说明进行操作 我正在使用 PuTTY 访问 sqlplus 在本练习中使用以下 SQL 命令 并尝试使用 SAVE 和 SPOOL 命令将 SQL 命令和输出保存
  • 在处理器生成的类中使用库

    我正在开发一个库来使用注释和处理器生成类 生成的类应该使用Gson来自谷歌的图书馆 我的问题是 我应该在哪里添加 Gson 依赖项 我目前正在将其添加到处理器 build gradle 中 但是当生成类时 找不到 Gson Android
  • Java 数组返回奇怪的输出[重复]

    这个问题在这里已经有答案了 我正在为家庭作业问题创建一个方法 该方法返回数组中的最高值 我正在使用一个 for循环将数字输入到数组中 输入代码如下所示 int array new int n for i 0 i
  • Oracle SQL:从表中选择数据和分区名称并截断分区

    这是一个由两部分组成的问题 1 是否可以根据数据所在的分区使用 select 语句检索其名称ROWID或者其他一些标识符 eg SELECT DATA ID CATEGORY VALUE PARTITION NAME FROM MYTABL
  • Spring - 捕获bean创建异常

    我想在我的代码中捕获 bean 实例化异常 我有什么选择 一种方法是使用基于 Java 的容器配置 Configuration public class AppConfig Bean public SomeBean someBean try
  • EJB3 - 通过注入与查找获取 bean - 有什么区别、影响和陷阱?

    我知道有两种获取 EJB 实例的方法 通过 EJB 注释在 servlet 和 EJB 中进行依赖注入 在任何地方通过 Context lookup 进行 JNDI 查找 使用这两种方法有哪些差异 影响和陷阱 它们是一样的吗 依赖注入比查找
  • Oracle BLOB 与 VARCHAR

    我需要在表的一列中存储一个 大 SQL 查询 我想使用BLOB场地 需要明确的是 我想存储查询 而不是其结果 最好使用什么 BLOB or a VARCHAR 或者也许还有别的什么 另一种选择是 CLOB 对于文本数据 使用 CLOB 比使
  • 如何创建序列密钥来保护应用程序

    我有一个创建序列密钥的应用程序 如下所示 Take customername Sign customername using privatekey and sha dsa algorithm 然后可以通过使用公钥解码并检查客户名称匹配来检查
  • 是否有可能构建一个可以通过浏览器运行的网络自动化?

    我创建了一个 Java 程序 它使用镀铬驱动程序 https chromedriver chromium org Selenium https www seleniumhq org and Java Excel API http jexce
  • 通过 awselb 使用 ssl 时的 neo4j java 驱动程序问题

    I am using neo4j community version 3 1 1 and enterprise edition version 3 0 1 with ssl configured through awselb To conn

随机推荐