Change the session time out
1. Autoconfig variable s_oc4j_sesstimeout
2. Profile ICX:Session Timeout
You can check $ORA_CONFIG_HOME/10.1.3/j2ee/oacore/application-deployments/oacore/html/orion-web.xml
where the value is maintained. The two values should be the same: autoconfig variable s_sesstimeout / profile ICX:Session Timeout
The session timeout query is meant to be run again and again to confirm that a user's activity is being counted and can also be used for determining what activity is counted against the idle timeout and what is not.
For example, when practicing with this you may note that when a user is within core forms the ICX_SESSIONS table is not updated with every single click.
Instead, the update is made only if at least one minute has passed since the last update. The session begins when the user logs into applications using the supported "AppsLogin" method, but there is no session created (and therefore never a timeout window) when logging in directly via the unsupported "/dev60cgi/f60cgi" URL.
Column Specifics
D - The disabled flag. If this is set to 'Y', then the session has been explicitly disabled, such as from a user logging out. If this is 'N', then the session is not disabled.
START_TIME - The time of day the user first logged in.
CURRENT - The current time of day; useful when running the query repeatedly as this timestamps each query run.
USER_NAME - The login name of the user.
SESSION_ID - The session ID of the user. This can be confirmed from forms using the following navigation from the "System Administrator" responsibility:
- Help/Diagnostics/Examine
- - Block:$PROFILES$
- - Field: ICX_SESSION_ID
- - Value: Click this field for the value to appear
(The value of my session_id=469704674 as seen in the above Detector1 query result)
MINS_IDLE - The perceived number of minutes that the user has been idle.
TIMEOUT - The value of "ICX:Session Timeout" for the specific user
The query, as written, will dump a listing of all users that have connected within the last hour. If different users have different values for "ICX: Session Timeout", then this will be immediately apparent.
ICX: Limit time
ICX: Session timeout
1. Autoconfig variable s_oc4j_sesstimeout
2. Profile ICX:Session Timeout
You can check $ORA_CONFIG_HOME/10.1.3/j2ee/oacore/application-deployments/oacore/html/orion-web.xml
where the value is maintained. The two values should be the same: autoconfig variable s_sesstimeout / profile ICX:Session Timeout
set lines 400; set pages 4000; col profile_option_value format a25 col user_profile_option_name format a25 col Level format a14 select user_profile_option_name, decode(level_id,10001,'Site', 10002,'Application', 10003,'Responsibility', 10004,'User', 10005,'Server', 10006,'Organization', 10007, 'ServResp', level_id) "Level", profile_option_value, level_value from fnd_profile_option_values, fnd_profile_options_vl where upper(user_profile_option_name) like upper('%ICX%%SESS%%TIME%') AND fnd_profile_option_values.profile_option_id = fnd_profile_options_vl.profile_option_id; |
col timeout format a8 col user_name format a10 col mins_idle format 999.99 select disabled_flag, to_char(first_connect,'MM/DD/YYYY HH:MI:SS') Start_Time, to_char(sysdate,'HH:MI:SS') Current_Time, USER_NAME, session_id, (SYSDATE-last_connect)*24*60 Mins_Idle, fnd_profile.value_specific ('ICX_SESSION_TIMEOUT', a.user_id, a.responsibility_id, a.responsibility_application_id, a.org_id, NULL ) TimeOut from ICX_SESSIONS a, fnd_User b where a.user_id=b.user_id and last_connect > sysdate-1/24; |
col timeout format a8 col user_name format a10 col mins_idle format 999.99 select disabled_flag, to_char(first_connect,'MM/DD/YYYY HH:MI:SS') Start_Time, to_char(sysdate,'HH:MI:SS') Current_Time, USER_NAME, session_id, (SYSDATE-last_connect)*24*60 Mins_Idle, fnd_profile.value_specific ('ICX_SESSION_TIMEOUT', a.user_id, a.responsibility_id, a.responsibility_application_id, a.org_id, NULL ) TimeOut from ICX_SESSIONS a, fnd_User b where a.user_id=b.user_id and user_name='&USER_NAME_IN_UPPER_CASE'; |
The session timeout query is meant to be run again and again to confirm that a user's activity is being counted and can also be used for determining what activity is counted against the idle timeout and what is not.
For example, when practicing with this you may note that when a user is within core forms the ICX_SESSIONS table is not updated with every single click.
Instead, the update is made only if at least one minute has passed since the last update. The session begins when the user logs into applications using the supported "AppsLogin" method, but there is no session created (and therefore never a timeout window) when logging in directly via the unsupported "/dev60cgi/f60cgi" URL.
Column Specifics
D - The disabled flag. If this is set to 'Y', then the session has been explicitly disabled, such as from a user logging out. If this is 'N', then the session is not disabled.
START_TIME - The time of day the user first logged in.
CURRENT - The current time of day; useful when running the query repeatedly as this timestamps each query run.
USER_NAME - The login name of the user.
SESSION_ID - The session ID of the user. This can be confirmed from forms using the following navigation from the "System Administrator" responsibility:
- Help/Diagnostics/Examine
- - Block:$PROFILES$
- - Field: ICX_SESSION_ID
- - Value: Click this field for the value to appear
(The value of my session_id=469704674 as seen in the above Detector1 query result)
MINS_IDLE - The perceived number of minutes that the user has been idle.
TIMEOUT - The value of "ICX:Session Timeout" for the specific user
The query, as written, will dump a listing of all users that have connected within the last hour. If different users have different values for "ICX: Session Timeout", then this will be immediately apparent.
select SITE_ENABLED_FLAG, APP_ENABLED_FLAG, RESP_ENABLED_FLAG, USER_ENABLED_FLAG, ORG_ENABLED_FLAG, SERVER_ENABLED_FLAG, SERVERRESP_ENABLED_FLAG from fnd_profile_options where upper(profile_option_name) = 'ICX_SESSION_TIMEOUT'; |
Setting ICX_SESSION_TIMEOUT to correspond to Jserv Session Timeout
set_profile(178, 'ICX_SESSION_TIMEOUT',
10001, 0,
'%s_sesstimeout%'/(1000*60),
NULL);
|
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 |
ICX: Session timeout
The 2 profile options do the following: "ICX: Limit time" = 8 >> This means that a session will last for 8 hours. After that time the session will be closed "ICX:Session Timeout" = 180. This means that after 3 hours of inactivity the session will be timed out. |
ICX: Session Timeout | controls the time of inactivity of the session. If set to 30 minutes, then after no activity for 30 minutes you will get the popup window. | This is for the Forms Session. |
ICX:Limit Time | controls the total time a session can be logged in. If set to 8 hours, then after 8 hours you will get the popup window regardless of what activity is being done | This is for the Forms Session. |
ICX:Limit connect | is a profile option determines the max number of connection requests a user can make in a single session. If a user sends more requests than the value specified by this profile option in a single session, then the session will expire. This needs to be bumped up to 2000 +, because each time Session Time is checked it adds another ICX connection. This IS NOT DETERMEND BY THE NUMBER OF USER CONNECTIONS. The more ICX checks its self the more ICX connections you are going to see for a user. | |
Session.timeout is set under the Apache's zone.properties | This should be set to default which is 1800000. Anything higher can result in performance and out of memory errors. Typically session.timeout and ICX:Session Timeout are set to the same value. | |
FORMS60_TIMEOUT = 5 | Check .env for this. This is used to clean up and terminate the Forms Processes. The higher this variable is set, the longer the Forms processes will take to be cleaned up. | |
Heartbeat = 2 | check $OA_HTML/bin/appsweb.cfg and or appsweb_<sid>_<host>.cfg. This is used to send a packet to the Server to indicate it is still active. |
The following are the best practice setup 1. Profile Options: ICX: Session Timeout = 30 ICX:Limit Time = 12 ICX:Limit connect = 2000 |
2. Apache zone.properties: session.timeout = 1800000 Under Apache_Top: $ grep -i session.timeout zone.properties session.timeout= Session.timeout is what controls the Self Service Timeout. If this times out, you will not be prompted to log back in and will receive a JSP/WEB type error message. |
3. Modify the $FORMS60_WEB_CONFIG_FILE, which points to the appsweb_host_sid.cfg file:
networkRetries=30 heartbeat =2 Under OA_HTML/bin: $ grep -i heartbeat appsweb.cfg heartBeat= networkRetries= $ grep -i heartbeat appsweb_<SID>_auohs<host>.cfg heartBeat= networkRetries= |
5. If using Forms servlets check the following: Check formservlet.ini in Apache for FORMS60_TIMEOUT=5 To check if using servlets look for the line in jserv.conf file: #ApJServGroup FormsGroup 1 1 /u02/oracle/visora/iAS/Apache/Jserv/etc/forms.properties If using servlets this line will be uncommented. Check also the appsweb.cfg under OA_HTML/bin for line: ; serverURL=/forms/formservlet If using servlets this line will be uncommented. $ grep -i forms60_timeout formservlet.ini FORMS60_TIMEOUT= 6. FORMS60_TIMEOUT = 5 (check SID.env for this or echo$FORMS60_TIMEOUT) Heartbeat = 2 (check $OA_HTML/bin/appsweb.cfg) Note: There can be two different errors that affect the FROMS60_TIMEOUT and the heartbeat. If there are Intermittent FRM-92100 type errors it is due to the heartbeat being to high and timing out. So the heartbeat setting will need to be adjusted to suit your needs. If the FORMS60_TIMEOUT is set to a higher value you may see run away f60webmx processes. If there are run away f60webmx or f60webmx processes not terminating, then return the FORMS60_TIMEOUT to the default value of 5 and retest. 7. Bounce Forms Server. 8. Clear Apache cache $OA_HTML/_pages 9. Bounce Apache Server. |
You have to pass the UNIX process id to this script.------Cut here---------column "User Name" format a10
column "ClPID" format a8
select d.user_name "User Name",
b.sid SID,b.serial# "Serial#",
c.spid "srvPID", a.SPID "ClPID",
to_char(START_TIME,'DD-MON-YY HH:MM:SS') "STime"
from fnd_logins a, v$session b, v$process c,
fnd_user d
where b.paddr = c.addr and a.pid=c.pid
and a.spid = b.process and d.user_id = a.user_id
and (d.user_name = 'USER_NAME' OR 1=1)
and a.SPID = &PID
/ -----------------------------Script ends here-------------------------- |
OC4J session timeout, if not set, defaults to 20 minutes. This will cause the oc4j session to timeout before the Apps/ Forms session timeout which is defined by profile option "ICX: Session Timeout" 1. Edit the <CONTEXT_NAME>.xml file in $INST_TOP/appl/admin directory 2. Ensure that value of profile option "ICX: Session Timeout" and autoconfig variable "s_oc4j_sesstimeout" in context file match. In case you need the session to timeout after 2 hrs then the profile option "ICX: Session Timeout" and autoconfig variable "s_oc4j_sesstimeout" should be set to 120 3. Run autoconfig |
Changed the s_oc4j_sesstimeout to 2700000 (45 * 60 * 1000) Change the s_oc4j_sesstimeout changed from 2700000 to 45 minutes in the $CONTEXT_FILE In R12 the session-timeout (s_oc4j_sesstimeout) is expressed in minutes in $ORA_CONFIG_HOME/10.1.3/j2ee/oacore/application-deployments/oacore/html/orion-web.xml In R11i the session.timeout is represented in mili-seconds 1. Change the s_oc4j_sesstimeout changed from 2700000 to 45 minutes in the $CONTEXT_FILE 2. Run Autoconfig |
a) Set "ICX: Session Timeout" profile option value b) Set "OC4J Session Timeout" in orion-web.xml c) Set Timeout in httpd.conf. 3. Increase the JVM heap size to 512/1024 depending on the current value in the configuration file for the oacore process 1. Increase heap size of both concurrent program and oacore process. Please ensure that your heap size is at least -Xmx512m -Xms256m To Increase Heap Size of concurrent program: ============================================ 1. Navigate to the form System Administrator > Concurrent > Program > Define 2. In this form query the Program : "Publish and Presentation Program" and Short Name : "PUBLISH_PRESENT_WRAPPER" 3. In the resulting record check the Executable properties are Name : "PUBLISH_PRESENT_WRAPPER" Method : "Java Concurrent Program" 4. In the "Options" field of Executable properties enter the following java options -Xmx512m -Xms128m and save the record. This specifies the maximum and initial heap sizes: -Xmx512M - Maximum heap size -Xms128M - Initial heap size 5. Bounce the CM, DB Listener, and Apache Server To Increase Heap Size of oacore process: ======================================= 1. Locate the file $ORA_CONFIG_HOME/10.1.3/opmn/conf/opmn.xml 2. In the file, <process-type id="oacore" module-id="OC4J" status="enabled" working-dir="$ORACLE_HOME/j2ee/home"> <module-data> <category id="start-parameters"> <data id="java-options" value="-server -verbose:gc -Xmx1024M -Xms256M -XX:MaxPermSize=160M oacore java-options -Xmx1024M - Specifies maximum heap memory.(1024 MB) -Xms256M - Initial heap memory.(256 MB) . Please increase the values to resolve out of memory error. 3. Bounce the Concurrent Manager, Database Listener, and Apache Server. If the report still fails with the java heap space errors, change parameter Maximum heap size to -Xmx1024M or -Xmx2048m based on your hardware compatibility |
elect p.profile_option_name SHORT_NAME, n.user_profile_option_name NAME, decode(v.level_id, 10001, 'Site', 10002, 'Application', 10003, 'Responsibility', 10004, 'User', 10005, 'Server', 10007, 'SERVRESP', 'UnDef') LEVEL_SET, decode(to_char(v.level_id), '10001', '', '10002', app.application_short_name, '10003', rsp.responsibility_key, '10005', svr.node_name, '10006', org.name, '10004', usr.user_name, '10007', 'Serv/resp', 'UnDef') "CONTEXT", v.profile_option_value VALUE from fnd_profile_options p, fnd_profile_option_values v, fnd_profile_options_tl n, fnd_user usr, fnd_application app, fnd_responsibility rsp, fnd_nodes svr, hr_operating_units org where p.profile_option_id = v.profile_option_id (+) and p.profile_option_name = n.profile_option_name and upper(n.user_profile_option_name) like upper('%FND%DEBUG%') and usr.user_id (+) = v.level_value and rsp.application_id (+) = v.level_value_application_id and rsp.responsibility_id (+) = v.level_value and app.application_id (+) = v.level_value and svr.node_id (+) = v.level_value and org.organization_id (+) = v.level_value order by short_name, level_set; |
No comments:
Post a Comment