每5分钟调用一次REST ajax请求weblogic的

时间:2016-12-14 12:18:49

标签: java ajax web-services rest weblogic-10.x

当我在weblogic 10.3.0上运行的UI代码调用rest webservice时,我正面临这个问题,在5分钟后再次调用webservice。我对这个问题在哪里感到困惑。

我的请求来自ExtJS UI上的Ajax调用。此请求命中后端Web服务,通​​常耗时超过5分钟。因此,一旦第一次请求的时间超过5分钟,就会有另一个网络服务命中(根据日志)。我使用firebug检查了网络,但我没有看到多个请求。

起初我认为这可能是ajax超时,所以尝试将ajax中的全局超时设置为2小时,但这没有帮助。 我将web.xml会话超时配置为2小时,其中dint也有帮助。 在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

问题是如果网络服务的持续时间超过5分钟,我的网络服务每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实例并行运行。我试图在web.xml和其他方面增加ajax请求和会话超时的超时,但没有一个能解决问题。

如果exportData碰巧在5分钟内完成,则不会有任何后续调用。问题是如果特定的调用超过5分钟,应用程序不应该重新调用webservice,我只想找出配置5分钟超时的位置。

我已经尝试将ajax.timeout全局设置为2小时,web.xml会话超时为2小时。将weblogic JTA超时更改为30分钟。但它没有帮助。

1 个答案:

答案 0 :(得分:0)

有些事情会浮现在脑海中......如果您确定是您的webapp进行调用,请使用Firebug或Chrome开发工具并在它调用您的Web服务时放置一个断点,然后使用堆栈跟踪回溯并计算是什么触发它(大概每5分钟)。

我在这里假设一些事情......是对网络服务的调用开始了一个工作,它不需要结果?

我认为您可能要做的是在服务器端代码中添加一些内容以跟踪导出是否已在运行,并且当调用进入Web服务时,它首先检查它是否已在运行,如果是,它不再运行它。如果webapp确实查看了结果,那么您的Web服务可能只返回“导出已经运行”这样的消息。