Skip to Content
avatar image
Former Member

Inactivity Timeout for WD ABAP standalone/ travel expenses

Hi together,

we are currently implementing travel expenses with WD ABAP as standalone without SAP EP portal.

After some minutes of inactivity, the session has been deleted by the system. Any navigation after that time ends up in a crashing IView.

Is there a smart parameter to change this inactivity period to a higher value? If so, how can I change it?

SAP Note says it cannot be changed but I can't believe it.

For WD Java, there are parameters in the J2EE engine, but this is not used by WD ABAP.

Thanks for any idea,

Michael

Add comment
10|10000 characters needed characters exceeded

  • Get RSS Feed

1 Answer

  • Best Answer
    avatar image
    Former Member
    Feb 24, 2009 at 12:24 PM

    Hi Michael

    There is a sever time out thats set at WAS level, usally during installation .

    below is excerpt on same topic from Thomas Jung.

    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.

    Greetings

    Prashant

    Add comment
    10|10000 characters needed characters exceeded

    • rdisp/plugin_auto_logout is a instance profile parameter and must be set by your Basis team. It effects the maximum timeout for all service nodes and you should be careful about changing it. As sessions stay alive they consume system resources. Your basis team should carefully calculate how many users you have active and how much system resources you can aford for them to lock up before chaning this settings.

      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.

      The code that was quote above would be if you wanted to calculate the timeout - say for instance you wanted to used a timedTrigger in your application to produce a warning dialog before the timeout occured. It is not some general code intended to extend the timeout for a particular application.