Timeout on Portal Server when using iFrame portlet?

If your users are getting timeout errors for interacting with a web app through an iFrame portlet on Sun Java System Portal Server, then you got two theoretical workarounds:

1. Increase session timeout to a larger number. This will increase resource footprint (mainly memory) on Portal Server and may cause inefficiencies. So, if you have plenty of RAM and you are not running into performance issues related to memory, you can consider this option.

2. Build a heart-beat or ping-back mechanism. This can be done in two ways.

2.1 One is to build a proxy servlet that run within the Portal Server instance. Instead of having user’s browser interact with the web app that live within the iFrame, have the browser talk to the proxy servlet that forward each request to the actual web app. The amount of extra network traffic will depends on how chatty your web app is. This will also require you to modify your application’s logic.

2.2. Another way is to write a simple html page/portlet containing a JavaScript/AJAX that would periodically ping back to a servlet/portlet running within the Portal Server instance as long as the browser is still running. You don’t need to alter the request/response flow or behavior of the application. You just need to add a hidden JavaScript/AJAX function somewhere within the Portal Desktop. The amount of extra network traffic generated will be constant for each active user. However, this could create an opportunity for another to gain access to an user’s account if she/he left the browser with the portal page open and unattended for an extended amount of time.

Let me know if you have a better idea.

Advertisements

2 thoughts on “Timeout on Portal Server when using iFrame portlet?

  1. Hi Dave,

    I have the same problem. (Using OpenPortal Portlet Container)

    I created a simple portlet and made request to the portlet with ajax periodically from container. However, session times out. My Code fraction is here;

    periyod=100;

    function invokeRequest(){

    $.get(“”, function(data) { alert(1); }); }

    window.setInterval(“invokeRequest()”,periyod);

    As you see, it makes request to a portlet periodically, but session times out.

    Is there a way I can keep the session alive ? Thanks.

  2. String sessionExtenderPath = “http://portal.abc.com.tr:8080/SessionExtend/SessionExtend”;

    $.get(“sessionExtenderPath”, function(data) { alert(1); }); }

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s