代码之家  ›  专栏  ›  技术社区  ›  Ogre Psalm33

错误ORA-12571(tns:packet writer failure)在Web服务中意味着什么?

  •  1
  • Ogre Psalm33  · 技术社区  · 15 年前

    背景 :我正在调用用ASP.NET编写的查询Oracle数据库的Web服务。我知道Web服务本身可以工作,因为我在其他应用程序之前就使用过它。所以我在Visual Studio中有一个Web应用程序,我一直在来回切换,从“dev”Web服务指向相同Web服务的生产配置版本进行测试。指向“dev”配置的Web服务没有问题,但调用生产版本时,调用该服务时总是会出现异常:

    SoapException was unhandled by user code
    Server was unable to process request. ---> could not execute query
    [ SELECT this_.FIELD1 as FIELD1_18_0_, this_.FIELD2 as FIELD12_18_0_ FROM ABC.TABLE_A this_ WHERE this_.FIELD1 like :p0 ORDER BY this_.FIELD1 asc ]
    Positional parameters:  #0>00073%
    [SQL: SELECT this_.FIELD1 as FIELD1_18_0_, this_.FIELD2 as FIELD12_18_0_ FROM ABC.TABLE_A this_ WHERE this_.FIELD1 like :p0 ORDER BY this_.FIELD1] ---> ORA-12571: TNS:packet writer failure
    

    我针对适当的数据库运行了SQL查询(直接从异常消息中剪切和粘贴),查询返回了预期的数据。我尝试更新并重新添加Web服务引用,既作为“服务引用”(.NET 3.0+方式)又作为“Web引用”(旧的.NET方式),两者都给出了相同的错误。

    问题 :那么,“ora-12571:tns:packet writer failure”错误在Web服务上下文中意味着什么?查找Oracle错误号会给出一些非常模糊的可能原因,例如“电缆连接松动”或“IP地址冲突”。我相当肯定这两者都不是,因为另一个应用程序目前正在成功地使用该Web服务。可能是某种配置错误,或者更细微的错误?还有人看到这个令人恼火的Oracle错误号被归因于与Web服务相关的东西吗?

    2 回复  |  直到 15 年前
        1
  •  1
  •   Shiraz Bhaiji    15 年前

    您的调用将从WS客户机到WS服务器再到Oracle数据库。

    您的错误是ORA错误,由数据库生成。所以您的问题可能在WS服务器和数据库之间。

    当您运行“针对适当数据库的SQL查询”时,您是从Web服务器执行的吗?如果不行,你能试试吗?确保您使用的是相同的连接配置。

    编辑

    根据下面的评论,真正的问题是驱动程序不匹配。

        2
  •  1
  •   Nariman    15 年前

    我建议更仔细地重新检查您的假设,因为这显然是与DB的Web服务对话中的错误,应该完全独立于W/S调用者。

    如果w/s调用正在生成这个特定的异常,那么对于所有其他调用都应该这样做,因此成功使用Web服务的“其他应用程序”只是不执行相同的代码,或者有外部因素在起作用。

    不管怎样,它都与服务的注册或调用方式无关。