2

我从部署在 Oracle Application Server 10g 中的 Web 应用程序中收到错误消息:“网络适配器无法建立连接”。数据库是本地的,所以不应该有任何连接问题。

第一次测试:我可以从SQL plus连接到数据库,运行查询等没有问题。第二次测试:我可以从服务器上本地安装的JDeveloper连接到数据库,运行查询等没有问题。这适用于短 JDBC 字符串和长字符串(如下所示)。

jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=abcd)(SERVER=DEDICATED)))

然而,当我运行网络应用程序时,它给出了上述错误。这对我来说似乎太笼统了。

关于如何解决这个问题的任何建议?我假设 Oracle 在某处记录失败的连接尝试,但我在数据库 alert.log 文件中找不到任何相关内容。

问题可能是应用程序正在使用旧的 jsdk,但我认为随后会给出一些版本不匹配错误而不是“网络连接”消息。

编辑:我不知道这是 OAS 问题还是特定 Web 应用程序的问题,我想先弄清楚这一点,因为它看起来应该很容易。在 WebSphere 中,有一个“测试连接”按钮指向您添加的 dest 数据源,但在 OAS10 中似乎没有这样的功能?不知何故,我认为一定有,我只是想念它,因为我不是 OAS 专家。

编辑 2:我在远程机器上安装了 JDevelop 并毫无问题地连接到数据库,所以我确定这不是数据库连接本身的问题 - 似乎它一定是 OAS 内部的问题?

4

4 回答 4

2

使用默认配置运行 Oracle XE 时,我遇到了类似的问题(能够通过客户端连接但不能通过 Web 应用程序连接)。越来越多的会话和进程解决了我的问题。检查这个http://www.markcallen.com/oracle/oracle-xe-tuning

于 2010-02-08T04:24:10.030 回答
0

我假设 Oracle 在某处记录失败的连接尝试

它会出现在 listener.log 中,但是由于您得到的错误,JDBC 甚至可以联系侦听器似乎值得怀疑。

jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=abcd)(SERVER=DEDICATED)))

这与您用于网络应用程序的字符串相同吗?

于 2010-02-08T03:41:26.610 回答
0

我遇到了 localhost 和 127.0.0.1 的问题,当使用更明确的主机名或地址 [IE 一个其他机器会知道主机的名称。] 时,这些问题就会消失。我认为这与名称的解析方式有关(例如本地或关闭到名称服务器或类似的)。

不是 java 人,但有什么方法可以简单地从 java ping localhost/127.0.0.1 并查看是否有响应。

于 2010-02-08T11:25:21.363 回答
0

解决此问题的方法之一是使用 DB 服务器条目更新 WAS 服务器上的 Hosts 文件,如下所示: 111.222.333.444 serverab.abc.com serverab

于 2016-09-24T09:03:17.093 回答