cancel
Showing results for 
Search instead for 
Did you mean: 

Inactivity Timeout for WD ABAP standalone/ travel expenses

Former Member
0 Kudos

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

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

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

Former Member
0 Kudos

Prashant,

thanks for your quick reply. This looks quite interesting, so I'd like to test in on our system.

By random, do you know where to implement this exactly or where to find these settings?

As I'm a process consultant, I'm not the expert for basis settings. Sorry for that

regards,,

Michael

thomas_jung
Developer Advocate
Developer Advocate
0 Kudos

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.

Answers (0)