【发布时间】:2016-12-14 12:18:48
【问题描述】:
当我在 weblogic 10.3.0 上运行的 UI 代码调用休息 web 服务时,我遇到了这个问题,恰好 5 分钟后再次调用 web 服务。我很困惑问题出在哪里。
我的请求来自 ExtJS UI 上的 Ajax 调用。此请求会命中后端 Web 服务,通常会花费 5 分钟以上。因此,一旦第一次请求的时间超过 5 分钟持续时间,就会有另一个 Web 服务命中(根据日志)。我使用 firebug 检查了网络,但没有看到多个请求。
起初我认为这可能是 ajax 超时,因此尝试将 ajax 中的全局超时设置为 2 小时,但这无济于事。 我将 web.xml 会话超时配置为 2 小时,这也有帮助。 在 weblogic 管理控制台中,我尝试将 JTA(java 事务 API)(假设它与所有事务有关)的最大超时设置为 1800 秒,这也有帮助。
如果你们能给我一些指示,我可以尝试解决这个问题的其他方法,我将不胜感激。
PS:根据日志,它是精确到秒的 5 分钟。
2016-12-13 07:52:25,783 INFO [103' for queue: 'weblogic.kernel.Default (self-tuning)'] search.Search.exportData - Starting exportData
2016-12-13 07:57:25,787 INFO ['72' for queue: 'weblogic.kernel.Default (self-tuning)'] search.Search.exportData - Starting exportData
2016-12-13 08:02:25,784 INFO [101' for queue: 'weblogic.kernel.Default (self-tuning)'] search.Search.exportData - Starting exportData
问题是,如果该 Web 服务的持续时间超过 5 分钟,我的 Web 服务每 5 分钟就会被调用一次。让我用一个例子来解释一下:
@ Time 0 minutes : UI calls a webservice : /exportData (lets say this api typically takes 16 minutes to complete)
@ Time 5th minute : /exportData gets invoked again with no interation from UI. Nor there is a trace in UI network which says UI called this webservice.
@ Time 10th minute : /exportData gets invoked again
@ Time 15th minute : /exportData gets invoked again
所以最后在 15.1 分钟,将有 4 个 exportData 实例并行运行。我曾尝试增加 ajax 请求中的超时和 web.xml 中的会话超时和其他内容,但都没有解决问题。
如果 exportData 恰好在 5 分钟内完成,则不会有任何后续调用。问题是如果该特定调用花费超过 5 分钟,应用程序不应重新调用 Web 服务,我只想找出配置 5 分钟超时的位置。
我已经尝试将 ajax.timeout 全局设置为 2 小时,web.xml 会话超时设置为 2 小时。将 weblogic JTA 超时更改为 30 分钟。但它没有帮助。
【问题讨论】:
-
我不清楚问题是什么。您是否想弄清楚调用 Web 服务的代码是什么?您是否想弄清楚为什么请求需要 5 分钟才能完成?您能否修改您的问题并在其末尾添加一个实际问题,并重述您认为的问题所在?
-
嗨,Brian,我已经更新了问题陈述。
标签: java ajax web-services rest weblogic-10.x