Sunday, June 1, 2008

How AutoConfig sets ICX: Session Timeout

Print this post

 

AutoConfig (adconfig) uses the variable s_sesstimeout from the $APPL_TOP/admin/<context>.xml to determine the ICX:Session Timeout Profile Option.

adconfig runs the script afwebprf.sql which does the following :

Setting ICX_SESSION_TIMEOUT to correspond to Jserv Session Timeout
      set_profile(178, 'ICX_SESSION_TIMEOUT',10001, 0,
                 '%s_sesstimeout%'/(1000*60),
                  NULL);

In the template file for the <context>.xml file (adxmlctx.tmp) there is a default value for s_sesstimeout :

  • In adxmlctx.tmp version 115.32 and earlier, the default value for s_sesstimeout is 600000 which when plugged into the afwebprf.sql script would cause the ICX: Session Timeout Profile Option to be a value of 10.
  • In adxmlctx.tmp version 115.33 and newer, the default value for s_sesstimeout is 1800000 which when plugged into the afwebprf.sql script would cause the ICX: Session Timeout Profile Option to be a value of 30.

If you want the ICX: Session Timeout to be different, you will have to update the .xml file so that s_sesstimeout/(1000*60) equals the value you want it to be.  Keep in mind that the s_sesstimeout is used in the zone.properties file as well. 
The session timeout in zone.properties is basically set to the same value as the profile option, except for the fact that in zone.properties it is specified in milliseconds and the profile option is in minutes (hence the calculation in afwebprf.sql).

Here is some additional information regarding timeouts within 11i Apps, specifically for the zone.properties and the profile option.

1.  Edit $APACHE_TOP/Apache/Jserv/etc/zone.properties and set the session.timeout in miliseconds) : 

session.timeout=600000

 
This is Apache Jserv Session timeout and should not be any higher than 30 minutes. Longer idle sessions will drain the JVM resources and can also cause out of memory errors.

2.  Login into Oracle Applications as SYSADMIN and search for profile ICX:Session Timeout; set this Profile Option to the same value as the one specified by session.timeout in zone.properties.

This is session timeout limit for Self Service Framework Applications and is specified in minutes. If the ICX session expires before the Jserv session, the user will be presented with a login page even though the Jserv session is still active. If the user logs back in before the Jserv session expires, they will see the old state of their middle-tier transaction. This can be confusing, since from the point of view of the user there is no distinction between the ICX session and the Jserv session.

No comments: