1

我有一个第三方 .Net Web 应用程序(Sitecore),它连接到我的 DMZ 中服务器上的 Oracle 数据库(通过防火墙与我的 LAN 分开)。应用程序和数据库之间的连接很慢。它不会失败,与应用程序 (Sitecore) 和我们 LAN 内的 Oracle 数据库之间发生的相同过程相比,该过程(称为发布)只需要很长时间(几毫秒对 20 分钟)。有趣的是,当我使用 Toad for Oracle 查询 DMZ 中的数据库与查询 LAN 中的数据库副本时,我得到了相同的行为。

我已经在我们的局域网中复制了设置,问题就消失了。如果我使用 MSSQL 数据库,问题也会消失。如果我们不使用 Sitecore 或 Toad,而是在 Oracle 的 sqlPlus 应用程序中运行简单查询,则不会出现问题。

这向我表明,该问题特定于使用 Oracle Data Provider for .Net 的应用程序,这些应用程序在我们的 LAN 内运行并试图查询我们 LAN 外的 Oracle 数据库。

操作系统是 Windows 2008R2 64 位(Oracle DB 服务器)、Windows 2008 32 位(Sitecore)、Win7 64 位(Toad 和 SqlPlus 客户端)。不确定防火墙是什么,但我认为它在某种虚拟交换机/路由器上(是的,我不是网络专家,你怎么猜?)。甲骨文是10g。客户端使用 64 位和 32 位的 Oracle.DataAccess 2.102.4.0 或 2.102.5.0。蟾蜍是10.6。Sitecore 是 6.2.0 rev 091012

我已经运行了各种监视器,如 Wireshark、Procmon 和 Win7 资源监视器,但我不确定我在寻找什么。我所看到的只是发送和接收之间存在很大的时间间隔,但我无法确定这些间隔是在哪里产生的。对我来说,这一切真的很诡异。根据我的经验,网络连接要么工作要么不工作,如果某些流量很慢,那么所有流量都很慢。

关于什么可能导致这种行为的任何想法?具体来说,对于 Oracle 数据提供程序的特定实现,哪些网络/路由器/防火墙设置可能会导致连接(根据 Wireshark 通过 TNS 和 TCP 协议)缓慢但不会完全失败?

困惑和轻微的惊吓,

詹姆士。

4

1 回答 1

1

所以答案是我们使用的防火墙导致了这个问题。它正在尝试对 Oracle 流量(已由 ODP.net 提供商处理)进行深度数据包检查,这会大大减慢网络流量,而不会真正停止它。使用不同方法的防火墙应该可以解决问题。Quest(蟾蜍支持)的家伙非常好,并想出了答案。Oracle 支持的帮助不大。Quest 有一些关于该问题的文档,但它位于支持门户的后面。

于 2011-04-08T02:54:44.310 回答