2010-09-22 97 views
7

在WebSphere 6.1中,我使用瘦JDBC客户端为Oracle 11g实例创建了一个数据源。WebSphere到Oracle - 不接受正确的密码

在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中检查过新用户拥有现有用户拥有的所有系统权限。

有关正在进行的操作或如何进一步调试的想法?

回答

25

只是FYI。我猜你正在网络部署模式下运行WebSphere。 您遇到的这种行为实际上是由设计引起的。

其原因是您在管理控制台上看到的“测试连接”按钮会从节点代理的进程内调用JDBC连接测试。无法将J2C别名信息传播到节点代理,而无需重新启动它;只要将配置保存到主存储库,一些配置对象就会在WebSphere中生效,并且一些配置对象仅在重新启动时才生效。 J2C别名在重新启动时生效。

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

这是一个已知的WebSphere限制......它也存在于7.0版本中,因此在下次迁移时测试它时不要感到惊讶。 :-)

3

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

+0

如果您更改WAS中的配置(您在更改JAAS别名的凭据时正在这样做),则可能需要重新启动服务器才能使其生效。 – Manglu 2010-09-27 00:16:28

+0

@Manglu取决于配置更改的范围,以及希望更改可见的范围。如果您在单元级别更改了某些内容,但您只希望在两个服务器实例上立即看到这些更改,则没有必要回收整个拓扑。这种区分在非生产环境中可能并不重要,但在生产环境中可能并不重要。 – Isaac 2015-09-02 15:37:39

1

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

+2

他们以前不区分大小写? **哇!** – Synesso 2010-09-24 09:20:16

+0

不!请记住,当你甚至不能假设你的客户能够混合使用情况时,甲骨文就会回到这个时代。即使在11g中也是可选的。 – Gaius 2010-09-24 10:10:31

1

试试这个: 数据源定义 安全 使用J2C别名都autentication由组件和autentication管理由容器

-2

管理我点我的数据源组元管理的认证以及集装箱-managed authentication.Its现在做工精细........

1

IBM WAS 8.5.5 Knowledge Center -
Managing Java 2 Connector Architecture authentication data entries for JAAS

如果您创建或更新一个指向新创建的J2C认证数据别名数据源,测试连接无法连接,直到您重新启动部署管理器

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

节点代理也必须重新启动