0

我正在从事 WAS 6.1 到 WAS 8.5.5 迁移项目(也将 JDK 1.5 迁移到 1.7),并且在切换 WAS 8.5.5 上的项目时面临数据库连接问题。

connection = defaultDataSource.getConnection(userID, password); Failing
java.sql.SQLException: ORA-01017: invalid username/password; logon denied DSRA0010E: SQL State = 72000, Error Code = 1,017

DataSource get Connection(userID, password) - 当我们传递 DB 连接用户 ID 和密码(我们在 JAAS 中使用的 - 服务器上的 J2C 身份验证数据)时,连接变得正确。但是当我们传递门户用户 ID 和密码时失败。 相同的代码在 WAS 6.1 上运行,没有任何例外。

获得与 DataSource 的正确连接。WAS 8.5.5 上 的 getConnection() 方法相同的代码在不同的环境中工作,但是在这种情况下,当我调用 getConnection(userID, password) 时,我得到了一个异常。数据源是 WAS 具有正确的身份验证别名集,并且在测试连接时,它在 WAS 端可以正常工作

我使用了 OJDBC6.jar(支持 WAS 8.5.5 的 odbc4.1),但它应用程序从 JRE lib 的 rt.jar 引用 DataSource 对象。

你能指导我解决这个问题吗?

4

1 回答 1

0

数据源的范围是什么?如果可能,您能否附加或提供数据源范围内的 security.xml 文件和 resources.xml。听起来他们是 security.xml 和管理控制台中显示的信息之间的同步问题。

请注意,测试连接可能会根据数据源的范围提供不同的结果。

数据源范围 JVM 测试连接操作发生的地方 Cell manager 进程 Node Node 代理进程(相关节点) Cluster Node 代理每个节点包含一个集群成员 Server Server;如果服务器不可用,则在节点代理中为包含应用程序服务器的节点重试测试连接操作。

如果您有一个集群范围的数据源,那么测试连接实际上是在节点代理上执行的。因此,服务器级别的故障(可能在您的情况下)没有被测试。

资料来源:知识中心

为了解决这个问题,我建议停止 JVM 并使用 syncNode 命令执行手动同步。

于 2015-04-30T18:36:31.590 回答