在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中检查过新用户拥有现有用户拥有的所有系统权限。
有关正在发生的事情或如何进一步调试此事的任何想法?
答案 0 :(得分:28)
仅供参考。我猜你在网络部署模式下运行WebSphere。 您遇到的这种行为实际上是设计出来的。
原因是您在管理控制台上看到的“测试连接”按钮从节点代理的进程内调用JDBC连接测试。 J2C Alias信息无法在不重新启动的情况下传播到Node Agent;一旦将配置保存到主存储库,一些配置对象就会在WebSphere中生效,有些只在重新启动时生效。 J2C别名在重新启动时生效。
在Network Deployment拓扑中,您可以拥有由同一个Node Agent控制的任意数量的服务器实例。您可以根据需要重新启动服务器实例,但除非您重新启动节点代理本身,否则“测试连接”按钮将永远不会起作用。
这是一个已知的WebSphere限制...在7.0版本中也存在,因此在下次迁移期间测试它时不要感到惊讶。 : - )
答案 1 :(得分:3)
如果其他人遇到这种情况,我重新启动了WebSphere,我的所有问题都消失了。这是高质量软件的真正标志。
答案 2 :(得分:1)
通常,当人们告诉我他们无法使用正确的密码登录Oracle 11g时,我知道他们已经被密码在10g和11g之间变为区分大小写。
答案 3 :(得分:1)
试试这个: 数据源定义 安全 使用j2c别名,由组件管理的身份验证和容器管理的身份验证
答案 4 :(得分:1)
如果您创建或更新指向新创建的J2C身份验证数据别名的数据源,测试连接将无法连接,直到您重新启动Deployment Manager 。
重新启动Deployment Manager后,J2C身份验证数据将反映在运行时配置中。对J2C身份验证数据字段的任何更改都需要重新启动Deployment Manager才能使更改生效。
还必须重新启动节点代理。
答案 5 :(得分:-2)
我已将我的数据源指向组件管理的身份验证以及容器管理的身份验证。它现在工作正常........