cancel
Showing results for 
Search instead for 
Did you mean: 

Timeout error

Former Member
0 Kudos

Hi Everybody ,

Thnx for your help in solving my previous issues . Here i have new issue .Pl help on this .

My requirement is increasing the session time for WDA .

I read other threads on this but i am not getting clear idea on this .

1 . Is it possible to increase the session time ?

2 . If it is possible where do we need to do this . Either from portal or in WDA only ?

3 .And How to do that ?

4 . IF it is not possible how can we handle exception before time out ?

Thanks in advance ,

Vijay Vorsu

Accepted Solutions (1)

Accepted Solutions (1)

uday_gubbala2
Active Contributor
0 Kudos

Hi Vijay,

rdisp/plugin_auto_logout is a instance profile parameter which effects the maximum timeout for all service nodes.You can also override the system time at the service node level in transaction SICF, but this timeout can only be shorter than the overall system timeout that is set by the above parameter. A longer timeout will simply be ignored.

You can use [Thomas Jung's code snippet|; below to calculate the timeout & produce a warning dialog before the timeout occured.

Well there is no mechanism to catch it before it happens. We have the event WDDOEXIT, but that is too late. You can only use that method to do cleanup before the final session state is released.

What you can do is to calculate the timeout and set a timer. Each time a server event occurs, you need to reset
 the timer. When the timer triggers, you will throw a server event to warn the user they are about to timeout. Please note
 however that the simple act of this trigger activation will actually reset the ICM session timer - and reset the timeout. 
Therefore once you trigger your manual timer you will have to enforce a manual timeout by firing a navigation exit plug.

Here is some logic to calculate the timeout - since you can have an override time at the SICF node level, but that value
 must be less than the system setting for timeout:

data: name type pfeparname.
  data: value type pfepvalue.
  data: l_timeout type icftime.
  data: timeout type int4,
        trigger_timeout type int4.
  clear: timeout, trigger_timeout.
 
****Get the App Server Timeout
  name = 'rdisp/plugin_auto_logout'.
  call 'C_SAPGPARAM' id 'NAME'  field name
                     id 'VALUE' field value.
 
****Is there a specific Timeout set
  if wdr_task=>server is bound.
    if wdr_task=>server->session_timeout is initial.
      timeout = value.
    else.
****We got a specific timeout - now convert it to a number of seconds.
      data: minutes type i.
      l_timeout =  wdr_task=>server->session_timeout.
      minutes = l_timeout+0(2) * 60.
      minutes = minutes + l_timeout+2(2).
      timeout = ( minutes * 60 ) + l_timeout+4(2).
****If a specified timeout is larger than the default, it is ignored.
****Use the default instead.
      if timeout > value.
        timeout = value.
      endif.
    endif.
  else.
    timeout = value.
  endif.

Regards,

Uday

Former Member
0 Kudos

Hi Uday ,

Thanx for quick reply . Can you elobarate more on this .

In the above code we are getting Timeout value but where we are comparing that with the idle session time to show message .

Thanks in advance ,

Vijay vorsu

thomas_jung
Developer Advocate
Developer Advocate
0 Kudos

Have a look at the linked forum thread where I explain in a little more detail what this code is doing. Basically you calculate the timeout and use this time to control a timedTrigger UI element. This way an event is triggered before the timeout occurs, giving you application control over the timeout. You technically reset the timeout with the timedTrigger event but you can always log the user off gracefully by firing an exit plug to a static page. More importantly you can popup a message to the user letting them know their session is about to timeout.

Former Member
0 Kudos

Hi Thomas ,

Thnx for your reply . I implented everything except logging off the user from the session .

What i did is : i created out bound plug in view , inbound and out bound ( exit ) plugs in window . I did the navigation link from out_view to in_window . I fired the out_view in the action of the final trigger timer instead of the code you have given .

Can i do like that or can you explain how to logging of user from pop up ?

Thanks in advance ,

Vijay vorsu

thomas_jung
Developer Advocate
Developer Advocate
0 Kudos

>Can i do like that or can you explain how to logging of user from pop up ?

Firing the exit plug is how I would suggest you perform the logoff. You can take them to some static, non-web dynpro page that explains what has happened.

Former Member
0 Kudos

Hi Thomas ,

I dont know for some reason logging of the session is not working for me . DO we need to close the final pop up before firing the out bound plug of the view ? .

If we dont write any code in action of first trigger element will session remains for long time ? Instead of calling pop up to tell user the session time out is reached just we will trigger empty action of trigger element to reset the timer . can we keep the session live for long time like this ?.

Thanks in advance ,

Vijay

thomas_jung
Developer Advocate
Developer Advocate
0 Kudos

In my popup view, I just fire the exit plug of the main window:


  DATA lo_w_main TYPE REF TO ig_w_main .
  lo_w_main =   wd_this->get_w_main_ctr( ).

  lo_w_main->fire_exitapp_plg(
    url =  lv_exit_url  ).

Former Member
0 Kudos

Hi Thomas ,

Sorry to bother you again . As per my understanding now i am firing the out bound plug of pop up window and navigating the pop up window only . but i need to get the main window reference and need to fire out bound plug of window .But i am trying to get the reference of main window from pop up . I tried with the code you have given but interface or clas " ig_w_main" is not avilable only . Can you tell me how to get reference of main window and fire out bound of main window .

Thanks ,

Vijay vorsu

thomas_jung
Developer Advocate
Developer Advocate
0 Kudos

What did you name your main window? Mine was named W_MAIN. Therefore the method name that gets generated is get_w_main_ctr. You would need to adjust this method name for whatever you named your window.

Former Member
0 Kudos

Thaks for replying Thomas . My issue is solved .

Just updating what i did to close the main window from pop up .

Just i added main view in pop up view as component use . And i used the code whatever you have given .

Issue is solved . Points awarded .

Thanks,

Vijay vorsu

Answers (1)

Answers (1)

uday_gubbala2
Active Contributor
0 Kudos

Hi Vijay,

Check this advise given out by Suman in [here|;:

We have a provision to increase the application execution time.

1. go to TCODE SMICM which is ICM monitor

2. pres shift+f1.

3. Select record HTTP and then goto menu SERVICE->change

4. Pop up appears here you can change the Keep Alive and Maximum Processing time.

5. click ok .

Regards,

Uday