1

I have the following scenario:

  • LR Portal 6.1.20 EE GA2 Portal behind IBM WebSeal
  • Staged Sites
  • Custom portlet which needs to publish it’s contents from staging to live

The custom portlet is publishing it’s contents with a class that extends BasePortletDataHandler and overrides the following methods:

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

This works quite well in developing mode, where there is no WebSeal. In control panel, you go to "site pages" and invoke “publish to live”.

In production however, we get WebSeal timeouts whenever this process takes more than 2 minutes. The process is still running in the background, but the user has no way telling if it's done, if it worked or if it did not. He gets no feedback about it what so ever.

Is there a way to implement a custom portlet for the control panel which takes care of these problems? How do I get/track the status of the process and how do I keep the session alive?

FeinesFabi
  • 1,147
  • 2
  • 12
  • 25

1 Answers1

1

I don't have any experience with liferay, but I administrator WebSEAL daily so I can approach your question from that angle. You can increase the timeouts on individual junctions. I have encountered similar scenarios with applications in the past. We have had to go up to a 300 second timeout.

[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

You may also need to increase the server timeouts:

[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

The problem is the application doesn't send any data over the TCP connection, so WebSEAL times out the connection. Unless you can change the way your application works, you'll have to increase the timeouts. Preferably you would use AJAX or similar technology to have the client routinely query the server for a status once the procedure is kicked off. However, I had a customer that was integrating with us and they couldn't change their application code, so I was forced to increase the timeouts for them as well.

Matt
  • 731
  • 6
  • 7
  • Thanks for the answer. I cannot change the WebSeal configuration because it is administrated by another group of the company with very strict policies. But I've done some tests with ajax and can now keep the session alive. Still can't keep track of the status though. – FeinesFabi Nov 24 '13 at 15:52