The sessionState timeout setting in GoldMine Connect's Web.Config file is not respected and users need to re-login to GoldMine Web (GMWEB) / GoldMine Mobile (GMME) after 20 minutes

Version 1

    Details

    - The <sessionState timeout="30"></sessionState>  setting in web.config file is not respected and users need to re-login to GoldMine Web after 20 minutes

    - The sessionState timeout setting in GoldMine Connect's Web.Config file is not respected and users need to re-login to GoldMine Web (GMWEB) / GoldMine Mobile (GMME) after 20 minutes

    [STEPS TO REPRODUCE]

    1. Browse to the GoldMine Connect >> Web.Config file (by default this is  located at C:\Program Files\GoldMine Connect or C:\Program Files\GoldMine Connect).

    3. Open the Web.Config file with Windows Notepad
    4. Search for the following entry:

    sessionState timeout

    5. By default the entry is:
    <sessionState timeout="30"></sessionState> 

    6. Leave or change the default value to anything higher than 30
    7. If applicable save the web.config file and close.
    8. If applicable perform an IISreset
    9. Login into GoldMine Web or GoldMine Mobile (result is the same).
    10. Open a contact record.
    11. Wait 25 minutes (it is necessary to wait longer than 21 minutes but less than the set the Session timeout setting)
    12. Click on the Contacts again within either GoldMine Mobile or GoldMine Web.
    >> RESULT: Instead of GoldMine Mobile or GoldMine Web loading the desired data, the user must login again into GoldMine Mobile or GoldMine Web.

     


    Resolution

    [INFORMATION]
    - Actually there are two settings which need to be verified and/or adjusted and here some general information about both setting and their dependencies.

    - The GoldMine web site (like many other web sites also) has its own session timeout value (see below A.) which is rather user (or better specific session) related and also application pool (see below B.) has its own Idle timeout value which is rather application related. Both setting rely  on each other, whereby the AppPool Idle Time-out can be considered as  more powerful as when it comes into play it will not only recycle the  AppPool but also kills current sessions.  


    A. GoldMine Connect >> Web.config file >> "<sessionState timeout="30"></sessionState>"

    - This setting means that your users’ sessions will be persisted until a 30 minute window of idle time has elapsed unless the  AppPool's worker process is not recycled either manually by recycling  the AppPool or also when performing an IIS reset or automatically when  the Idle Time-out limit is reached.

    -  The reason for this and also explains that the two values are dependent  on one another is because the session information is actually stored  within the worker process of the application pool. So in case the worker  process is shutdown, recylced or killed for any reason, the session  information will be lost automatically.

    [STEPS]
    1. Locate the Web.config file for GoldMine Connect.  (on default installations this will be available in "C:\Program Files\GoldMine Connect" or "C:\Program Files (x86)\GoldMine Connect")
    2. Open this file using a text editor such as the Windows Notepad.
    3. Search and adjust the following section "<sessionState timeout="  (the full default value is "<sessionState timeout="30"></sessionState>")
    4. By default the setting is "30" which is 30 minutes, change this value to the desired session time out.
    Additional Notes:
    - The maximum is 99 (minutes) and the minimum is 1 (minute)
    - It is recommended this value should not be set to less than 5 (minutes), and not higher than 60 (minutes).
    5. Save the file.
    6. Perform an IISreset
    7. make sure to verify the AppPool Idle Time-Out setting (see in B.) so that the values at least match
    8.  Once both settings are adjusted/verified >> Verify the the  behavior in either GoldMine Web (GMWEB) or GoldMine Mobile (GMME).




    B. The Application Pool >> Advanced Setting >> Idle Timeout setting within IIS

    - The AppPool Idle Time-Out setting determines the number of minutes the application pool will be held in memory, with no requests being made, before the application is automatically unloaded from memory.

    - On most default IIS installations, this value will default to 20 minutes. (there will be most likely a programmatically change in a future GoldMine Connect release which will set the AppPool default Idle Time-out also to 30 minutes but it would be always recommended to verify this)

    - It needs to be made sure that the AppPool Idle time-out setting has at least match the sessionState time out setting as only then the  Session.Timeout parameter will work as expected, but ideally  the AppPool Idle time-out value is always greater  than the website session timeout value because whenever the application  session timeout is reached, the  application pool will be restarted and therefore 'kill' the session  anyways regardless if the sessionTimout setting was met or not. 


    - This setting needs to be verified and adjusted in the GMMobileAppPool within IIS

    [STEPS]
    1. Browse to Application Pools
    2. Right Click on GMMobileAppPool (by default installation) >> Advanced
    3. Scroll to the Process Model section
    4. Verify / Adjust the "Idle Time-out (minutes) (In this example we set the SessionState Timeout to 45 minutes, so wwe will set the AppPool Idle Time-out to 60 minutes)
    5. OK
    6. Recycle the AppPool via Right Click >> Recylce or perform an IISreset

     

     

     


    Additional Note:
    In addition there is also another setting, which controls the maximum number of minutes the application pool can be active before it is recycled - this setting is the "Regular Time Interval (minutes)" Recycle trigger. This feature is intended to recycle the process on a regular basis (normally every 1-2 days) to avoid the effects of memory leaks etc. that may exist in software