9

在 WebSphere 6.1 中,我使用瘦 JDBC 客户端为 Oracle 11g 实例创建了一个数据源。

在 Oracle 中,我有两个用户,一个是现有的,另一个是新创建的。

如果我使用现有用户的组件管理的身份验证别名,我的 websphere 数据源是可以的,但如果我使用新用户的别名,则会失败并显示“无效的用户/密码”消息。错误信息是:

The test connection operation failed for data source MyDB (Non-XA) on 
server nodeagent at node MY_node with the following exception: 
java.sql.SQLException: ORA-01017: invalid username/password; 
logon denied DSRA0010E: SQL State = 72000, Error Code = 1,017. 
View JVM logs for further details.

JVM 日志中没有任何内容。我已经搜索了所有 websphere 日志,它们根本没有提到我的连接。

我可以通过 SQLPlus 登录或通过 SQuirreL(证明 JDBC 连接正常)来确认用户名和密码是否正确。

我在 Oracle 中检查了新用户拥有现有用户拥有的所有系统权限。

关于发生了什么或如何进一步调试的任何想法?

4

6 回答 6

29

仅供参考。我猜你是在 Network Deployment 模式下运行 WebSphere。您遇到的这种行为实际上是设计使然。

原因是您在管理控制台上看到的“测试连接”按钮从Node Agent的进程中调用 JDBC 连接测试。J2C Alias 信息在不重新启动的情况下无法传播到 Node Agent;一些配置对象在您将配置保存到主存储库后立即在 WebSphere 中生效,而一些配置对象仅在重新启动时生效。J2C 别名在重新启动时生效。

在网络部署拓扑中,您​​可以拥有由同一节点代理控制的任意数量的服务器实例。您可以根据需要重新启动服务器实例,但除非您重新启动节点代理本身,否则“测试连接”按钮将永远无法工作。

这是一个已知的 WebSphere 限制……它也存在于 7.0 版中,所以当您在下一次迁移期间测试它时不要感到惊讶。:-)

于 2010-09-30T23:16:34.027 回答
3

如果这发生在其他人身上,我重新启动 WebSphere,我的所有问题都消失了。这是高质量软件的真正标志。

于 2010-09-22T01:13:30.957 回答
1

通常当人们告诉我他们无法使用正确的密码登录 Oracle 11g 时,我知道他们已经被 10g 和 11g 之间的密码区分大小写所吸引。

于 2010-09-24T06:47:13.077 回答
1

试试这个:数据源定义安全性使用 j2c 别名,由组件管理的身份验证和由容器管理的身份验证

于 2013-01-18T11:18:35.517 回答
1

IBM WAS 8.5.5 知识中心 -
管理 JAAS 的 Java 2 连接器体系结构认证数据条目

如果您创建或更新指向新创建的 J2C 身份验证数据别名的数据源,那么测试连接将无法连接,直到您重新启动部署管理器

重新启动部署管理器后,J2C 身份验证数据将反映在运行时配置中。对 J2C 身份验证数据字段的任何更改都需要重新启动部署管理器以使更改生效。

节点代理也必须重新启动

于 2015-09-26T21:26:19.153 回答
-2

我已将我的数据源指向组件管理身份验证以及容器管理身份验证。它现在工作正常......

于 2013-08-20T12:15:34.523 回答