发布到实时 - 获取状态并防止超时

时间:2013-11-22 09:09:19

标签: timeout liferay liferay-6 feedback webseal

我有以下情况:

  • LR Portal 6.1.20 IBM WebSeal背后的EE GA2门户
  • 分阶段网站
  • 自定义portlet,需要将其内容从登台发布到实时

自定义portlet使用扩展BasePortletDataHandler的类发布它的内容并覆盖以下方法:

  • doExportData
  • doImportData
  • doDeleteData
  • isAlwaysExportable
  • isPublishToLiveByDefault
  • isAlwaysStaged

这在开发模式下运行良好,没有WebSeal。在控制面板中,您转到“网站页面”并调用“发布到实时”。

然而,在生产中,只要此过程花费超过2分钟,我们就会获得WebSeal超时。该过程仍然在后台运行,但是用户无法确定它是否已完成,是否有效或是否有效。他没有得到任何关于它的反馈。

有没有办法为控制面板实现自定义portlet来处理这些问题?如何获取/跟踪流程的状态以及如何使会话保持活动状态?

1 个答案:

答案 0 :(得分:1)

我对liferay没有任何经验,但我每天都管理WebSEAL,所以我可以从这个角度处理你的问题。您可以增加各个路口的超时时间。我在过去遇到过类似的应用场景。我们不得不进行300秒的超时。

[junction:junction_name]
http-timeout = 300
https-timeout = 300

http://publib.boulder.ibm.com/infocenter/tivihelp/v2r1/index.jsp?topic=%2Fcom.ibm.itame.doc_6.1.1%2Fam611_webseal_admin95.htm

您可能还需要增加服务器超时:

[server]
client-connect-timeout = 300

http://publib.boulder.ibm.com/infocenter/tivihelp/v2r1/topic/com.ibm.itame.doc_6.1.1/am611_webseal_admin94.htm?path=3_10_3_3_1_4_0_6_5#http-https-timeouts

问题是应用程序不通过TCP连接发送任何数据,因此WebSEAL超时连接。除非您可以更改应用程序的工作方式,否则您必须增加超时。优选地,您将使用AJAX或类似技术让客户端在程序启动后例行地向服务器查询状态。但是,我有一个与我们集成的客户,他们无法更改他们的应用程序代码,因此我也不得不为他们增加超时。