cancel
Showing results for 
Search instead for 
Did you mean: 

ABAP WebDynpro memory issue

Former Member
0 Kudos

Hello everyone,

we have a problem with an ABAP WebDynpro application. In general there are two main views (placed and packaged in different components): a) a search view and b) a detail view. The search view is used for customer search and the detail view presents information about the customer. So far so good. Now we use plugs for navigation from the detail view back to the search view (and vice versa).

The problem is that the garbage collection is not triggered when navigating back to the search view. The outbound plug for navigation is marked as an "Exit plug", the default inbound plug at the search view is markes as a "Startup plug". During the day our users normally do neither close nor refresh their browser window, which would close the session and trigger the garbage collection.

Do you have any ideas about how we could solve this problem? The goal is to release old data (formerly) held by the context. Do you think that it could be a problem with the software architecture or should we write an OSS note to SAP?

Best regards, Peter

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hello everybody,

first of all I want to thank all of you for your support.

The memory analysis revealed that there is some kind of circular referencing between the WebDynpro Components. Component A holds a Component Usage for B and Component B holds a Component Usage for A.

So for every navigation step from A to B (and vice versa) a new Component Usage is being pushed to this "stack".

We will re-think our navigation concept in order to fix this issue.

Thanks again for your help!

BR

Peter

Answers (3)

Answers (3)

Former Member
0 Kudos
chengalarayulu
Active Contributor
0 Kudos

Hi Peter,

EP is entirely a breadCromb like navigation where a temporary cache can be created for individual user, so as per my understanding EP can remove that cache.

check.

former_member184578
Active Contributor
0 Kudos

Hi,

What I understood from your query is you want to clear the search node when navigating back from navigation view. Correct ?  If so, in the Handle<Inbound_plugname> of Search view use invalidate( ) method of the context .

like,

lo_nd_search->invalidate( ).  " here search is the name of your context node in search view.

Hope this helps u.,

Thanks & Regards,

Kiran

Former Member
0 Kudos

Hello,

thank you for your reply.

We already considered using the nodes' invaildate() method and the componentcontroller's invalidate_all_nodes( ) method. The call of those methods will mark the nodes as "ready to release" but does not invoke the garbage collection itself. So the memory remains allocated until the user closes the browser window or manually refreshes the page.

This behaviour led to heavy memory usage during peek times.

The views are located in different WebDynpro components and are linked by component usages. This design should not be a problem, right?

Thanks and best regards,

Peter

former_member184578
Active Contributor
0 Kudos

Hi,

Check this help for memory analysis :  http://help.sap.com/saphelp_nw70ehp1/helpdata/en/0f/bc43c398cc4589a8b63b24d3579c8d/content.htm

also check this tutorial by sir on memory analysis. http://scn.sap.com/docs/DOC-2300

hope this helps u.,

Thanks & Regards,

Kiran

Former Member
0 Kudos

Hi again,

thanks for the tutorial. This is really helpful. I will perform a detailed memory analysis.

BR

Peter