JDBC:Oracle Application Server和“网络适配器无法建立连接”错误

我收到错误:“网络适配器无法与Oracle应用服务器10g中部署的Web应用程序建立连接”。 数据库是本地的,因此不应存在任何连接问题。

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

JDBC:预言:瘦:@(DESCRIPTION =(ADDRESS_LIST =(ADDRESS =(PROTOCOL = TCP)(HOST =本地主机)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = ABCD)(SERVER = DEDICATED)))

然而,当我运行Web应用程序时,它会出现上述错误。 对我来说似乎太通用了。

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

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

编辑:我不知道这是一个OAS问题还是特定Web应用程序的问题,我想首先想出来,因为它似乎应该很容易。 在WebSphere中,有一个“测试连接”按钮来指定您添加的目标数据源,但似乎OAS10中没有这样的function? 不知何故,我认为必须有,而我只是错过了,因为我不是美洲国家组织的专家。

编辑2:我在远程计算机上安装了JDevelop并且没有任何问题连接到数据库,因此我确信这不是数据库连接本身的问题 – 看起来它必须是OAS中的问题?

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

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

它会显示在listener.log中,但是如果你得到错误,那么JDBC甚至可以联系监听器似乎是值得怀疑的。

JDBC:预言:瘦:@(DESCRIPTION =(ADDRESS_LIST =(ADDRESS =(PROTOCOL = TCP)(HOST =本地主机)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = ABCD)(SERVER = DEDICATED)))

这是您用于Web应用程序的相同字符串吗?

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

不是一个java人,但有没有办法简单地从java ping localhost / 127.0.0.1,看看是否有响应。

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