ASG
IBM
Zystems
Cressida
Icon
Netflexity
 
  MQSeries.net
Search  Search       Tech Exchange      Education      Certifications      Library      Info Center      SupportPacs      LinkedIn  Search  Search                                                                   FAQ  FAQ   Usergroups  Usergroups
 
Register  ::  Log in Log in to check your private messages
 
RSS Feed - WebSphere MQ Support RSS Feed - Message Broker Support

MQSeries.net Forum Index » WebSphere Message Broker (ACE) Support » High Memory Consumption WMB 8.0.0.1

Post new topic  Reply to topic
 High Memory Consumption WMB 8.0.0.1 « View previous topic :: View next topic » 
Author Message
khalednabil
PostPosted: Tue Mar 26, 2013 8:27 am    Post subject: High Memory Consumption WMB 8.0.0.1 Reply with quote

Newbie

Joined: 07 Oct 2012
Posts: 6

Hi,

I am developing a flow using WMB 8.0.0.1, however I am experiencing a high memory consumption for this flow, below is the diagram of the flow

The memory of (DMF) process goes beyond 8G on the period of 5 days, restarting the EG release the resources, however it keeps on increasing with small amount with each transaction and it doesn't go down again, The total services response can be up to 5.5 MB

Quote:

                                                           compute node3 -> SOAP request node -> compute node3.1
                                                         /
MQ Input -> Compute1 -> Compute2 -> compute node4 -> SOAP request node -> compute node4.1
                                                         \
                                                           compute node5 -> SOAP request node -> compute node5.1
                                                           \
                                                           MQ Output node


Nodes Description:
    Compute 1: Oracle datasource, retrieve value from database and store in environment
    Compute 2: SQL server 2008 datasource, propagate the message to 4 propagation
    Propagation 1: compute node3 (construct soap request), send to soap request node, and compute node 3.1 (store the response in the environment variable)
    Propagation 2: compute node4 (construct soap request), send to soap request node, and compute node 4.1 (store the response in the environment variable)
    Propagation 3: compute node5 (construct soap request), send to soap request node, and compute node 5.1 (store the response in the environment variable)
    Prorogation 4: Computer 2 loops on the response of all three service, perform two calls to SQL server, and construct XML message and propagate to the output queue


Found these resources, but they are supposed to be fixed in 8.0.0.1
http://www-01.ibm.com/support/docview.wss?uid=swg1PM55115
http://www-01.ibm.com/support/docview.wss?rs=171&uid=swg1IC82402.

Any Suggestions ?
Back to top
View user's profile Send private message
Esa
PostPosted: Tue Mar 26, 2013 9:01 am    Post subject: Reply with quote

Grand Master

Joined: 22 May 2008
Posts: 1387
Location: Finland

Yes. It seems to me that you may be parsing or reparsing the messages that you get from the SOAP Request nodes in one or more compute nodes placed after the SOAP Requests.
Then you transfer the payload of the relevant part of it back top Compute2 using either LocalEnvironment or Environment.

If my guess is right, the cause of your problem is that you assign a parser in one or more of the compute nodes x.1. The parser will get orphaned when the call returns from the compute node. A flow that accumutales orphaned parsers will act exactly like yours when it comes to memory allocation.

If you are parsing the message, in other words creating an XMLNSC parser somewhere and then cutting or copying part of the message tree to (Local)Environment, you need to propagate the message tree containing the parser from the compute node to release the parser. It's the only way to release the parser. Add a passthrough node after the compute node and propagate to it.

If you are parsing the message directly to LocalEnvironment, then do it this way instead:
- parse the message to OuputLocaEnvironment
- copy the parsed payload to InputLocalEnvironment (do not copy the parser!)
- propagate OutputLocalEnvironment to the passthrough node
Back to top
View user's profile Send private message
mqjeff
PostPosted: Tue Mar 26, 2013 9:09 am    Post subject: Reply with quote

Grand Master

Joined: 25 Jun 2008
Posts: 17447

Or create the parser in Environment in compute2...
Back to top
View user's profile Send private message
Esa
PostPosted: Tue Mar 26, 2013 9:11 am    Post subject: Reply with quote

Grand Master

Joined: 22 May 2008
Posts: 1387
Location: Finland

Thanks, mqjeff. Thats the easier solution that I keep forgetting. The important thing to keep in mind is that the parser must be propagated to the MQOutput node when compute2 terminates.
Back to top
View user's profile Send private message
adubya
PostPosted: Tue Mar 26, 2013 9:40 am    Post subject: Reply with quote

Partisan

Joined: 25 Aug 2011
Posts: 377
Location: GU12, UK

Interesting thread, I was unaware of the potential to create orphaned parsers.

You learn something new everyday, thanks all
Back to top
View user's profile Send private message Send e-mail
Display posts from previous:   
Post new topic  Reply to topic Page 1 of 1

MQSeries.net Forum Index » WebSphere Message Broker (ACE) Support » High Memory Consumption WMB 8.0.0.1
Jump to:  



You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
Protected by Anti-Spam ACP
 
 


Theme by Dustin Baccetti
Powered by phpBB © 2001, 2002 phpBB Group

Copyright © MQSeries.net. All rights reserved.