【问题标题】:utl_http.request: Calls to same server blocking other sessions?utl_http.request:调用同一台服务器阻塞其他会话?
【发布时间】:2018-04-20 08:15:09
【问题描述】:

我们今天有一个工作挂在utl_http.request() 调用上...它调用的服务器似乎在生成请求时挂起,但没有发生超时异常(当前接收超时为默认值,60 秒)。在我们注意到并杀死它之前,该作业等待请求返回数小时。

十几个其他作业(也进行相同的 utl_http.request 调用)表明它们已被阻止 - 阻塞会话是第一个挂起的会话。 v$locked_object 没有记录,所以不清楚为什么其他会话认为第一个会话阻止了它们。他们都说会话事件的“库缓存加载锁定”。

在我们终止第一个会话后,其他作业运行完成(尽管在 utl_http 调用上出现 TNS: No Listener 错误)。

关于utl_http.request() 是否有什么东西可以同时从同一个实例发出一次对服务器/地址的调用? (关于为什么任何会话都没有出现超时的理论加分)。

【问题讨论】:

    标签: oracle plsql httprequest blocking


    【解决方案1】:

    不知怎的,我破解了它! 尝试更改 utl_http.set_wallet() 中的钱包路径并重新编译。执行网络服务,这次会因为无效的钱包位置而失败。在 utl_http.set_wallet() 过程中恢复钱包路径并再次编译代码。执行 web 服务,你应该得到响应而不挂起...... 祝你好运.....

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-04-11
      • 1970-01-01
      • 2016-08-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多