Product:
Cognos TM1 9.5.2
Microsoft Windows 2008 R2 server
Symptom:
User have to login to TM1 again after they have been away from the computer
Cause:
Unexpected timeouts may occur when the Default Parameter is changed or when the precedence of settings results in unexpected behavior. The setting in the web.config file takes precedence over idle timeout in IIS and machine.config. When timeout is missing in web.config then the setting from machine.config takes precedence.
For best results, do not change the default settings. To prevent a TM1Web session from timing out, if you do change the default setting, take into account your business requirements and the precedence of timeout settings.
To diagnose a timeout problem, be sure a setting has been made in the tm1s.cfg. No timeout setting means you never time out.
IdleConnectionTimeOut Seconds specifies a timeout limit for idle client connections in seconds. For example, if you include the line IdleConnectionTimeOutSeconds=900 in tm1s.cfg, the server disconnects idle client connections after 900 seconds.
Solution:
Increase the different time out values in the Cognos solution to two hours;
1)
Go to the folder for you TM1 application
Open tm1s.cfg in notepad
Increase timeout IdleConnectionTimeOutSeconds (tm1s.cfg) from 900 sec to 7200 sec (= 120 min).
Save the tm1s.cfg file.
Restart the TM1 application service from inside TM1 Architect.
(if the TM1 cube is to be used with Controller FAP recommendion to increase the value to IdleConnectionTimeOutSeconds=36000)
2)
Start Internet Information Service (IIS) manager and click on default web site.
On the right side click on Limits to open “Edit Web Site Limits” dialog.
Enter 7200 as value for “Connection timeout ( in seconds )”
Click OK
3)
Click on Application Pools
Click on the application pool used by cognos (cgi-bin) and the DefaultAppPool
On the right side click on Advance Settings
Change Idle-time out (in minutes) from 20 to 120.
Click OK
4)
Edit Web.config in the c:\inetpub\wwwroot\TM1Web folder.
Locate the following code:
<!– SESSION STATE SETTINGS
By default ASP.NET uses cookies to identify which requests
belong to a particular session.
If cookies are not available, a session can be tracked
by adding a session identifier to the URL.
To disable cookies, set sessionState cookieless=”true”.
–>
<sessionState
mode=”InProc”
stateConnectionString=”tcpip=127.0.0.1:42424″
sqlConnectionString=”data source=127.0.0.1;Trusted_Connection=yes
cookieless=”false”
timeout=”120″
/>
Change the timeout value (in minutes) from 20 to 120.
Save Web.config.
5)
Open web.config and find executionTimeout
<system.web>
<!– asp.net request execution timeout, compilation debug must be set to false –>
<httpRuntime executionTimeout=”110″ />
change the value to “7200” instead of “110” seconds.
Save Web.config
6)
Increase timeout of IIS worker process from sec (=20 min) to 7200 sec (= 120 min) with:
cscript %SystemDrive%\Inetpub\AdminScripts\adsutil.vbs set W3SVC/AppPools/ApplicationPoolName n
7)
Inside Internet information service (IIS) manager
Click on the ibmcognos folder (or tm1web folder)
Double-click on CGI to configure CGI time-out settings
Change behavior time-out (hh.mm.ss) from 00:15:00 to 02:00:00
Click on Apply
Restart IIS after changing timeout settings.