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 » limit on memory consumption of 64bit execution groups

Post new topic  Reply to topic Goto page 1, 2, 3  Next
 limit on memory consumption of 64bit execution groups « View previous topic :: View next topic » 
Author Message
j.f.sorge
PostPosted: Wed Feb 09, 2011 10:09 am    Post subject: limit on memory consumption of 64bit execution groups Reply with quote

Master

Joined: 27 Feb 2008
Posts: 218

We are running WMB 6.1.0.8 (64bit) on Solaris and getting problems because execution groups need a lot of memory after normal processing has been done for some days. When running WMB 6.0.0.3 (32bit) the execution group process got restarted automatically after 4GB limit (mentioned at InfoCenter) has been reached. But where is this limit when running 64bit execution groups? Can you configure message broker to restart 64bit execution groups automatically after 4GB of memory has been allocated as it does not free the memory it allocated times ago?

Thanks in advance!
_________________
IBM Certified Solution Designer - WebSphere MQ V6.0
IBM Certified Solution Developer - WebSphere Message Broker V6.0
IBM Certified Solution Developer - WebSphere Message Broker V6.1
IBM Certified Solution Developer - WebSphere Message Broker V7.0
Back to top
View user's profile Send private message
lancelotlinc
PostPosted: Wed Feb 09, 2011 10:23 am    Post subject: Reply with quote

Jedi Knight

Joined: 22 Mar 2010
Posts: 4941
Location: Bloomington, IL USA

WMB is a Java program, just like any other Java program running in a Java Runtime Environment. Use jconsole to view application memory usage the gc patterns.

http://java.sun.com/developer/technicalArticles/J2SE/jconsole.html

The issue may not be a finite memory limit, it may be that the memory available becomes segmented. You will identifiy this issue using jconsole. There are specific remedies you can apply to balance the availability of contiguous memory blocks.

http://download.oracle.com/javase/1.5.0/docs/guide/management/jconsole.html

jconsole is provided as part of the Java runtime environment. It is distributed with the runtime. You would typically run jconsole on your Windows machine and connect to the JVM on the Sun machine.
_________________
http://leanpub.com/IIB_Tips_and_Tricks
Save $20: Coupon Code: MQSERIES_READER
Back to top
View user's profile Send private message Send e-mail
mqjeff
PostPosted: Wed Feb 09, 2011 10:40 am    Post subject: Reply with quote

Grand Master

Joined: 25 Jun 2008
Posts: 17447

lancelotlinc wrote:
WMB is a Java program,


Except for the parts of it that are in C++.
Back to top
View user's profile Send private message
j.f.sorge
PostPosted: Wed Feb 09, 2011 10:49 am    Post subject: Reply with quote

Master

Joined: 27 Feb 2008
Posts: 218

mqjeff wrote:
lancelotlinc wrote:
WMB is a Java program,


Except for the parts of it that are in C++.

So is there any chance freeing the memory allocated by the C++ parts?
_________________
IBM Certified Solution Designer - WebSphere MQ V6.0
IBM Certified Solution Developer - WebSphere Message Broker V6.0
IBM Certified Solution Developer - WebSphere Message Broker V6.1
IBM Certified Solution Developer - WebSphere Message Broker V7.0
Back to top
View user's profile Send private message
smdavies99
PostPosted: Wed Feb 09, 2011 11:00 am    Post subject: Reply with quote

Jedi Council

Joined: 10 Feb 2003
Posts: 6076
Location: Somewhere over the Rainbow this side of Never-never land.

Just to remind you that WMB 6.0 is shortly going out of service.
6.0.0.3 is far from the last FixPack for 6.0.0.0. I'm sire if you were to examine the APARS in later FixPAcks you may well find that some of the possible memory leaks you are experiencing may well have been fixed.
_________________
WMQ User since 1999
MQSI/WBI/WMB/'Thingy' User since 2002
Linux user since 1995

Every time you reinvent the wheel the more square it gets (anon). If in doubt think and investigate before you ask silly questions.
Back to top
View user's profile Send private message
mqjeff
PostPosted: Wed Feb 09, 2011 11:06 am    Post subject: Reply with quote

Grand Master

Joined: 25 Jun 2008
Posts: 17447

It should be reused, without needing to be freed.

There are certain things that can be done in message flow coding that will fail to free memory.

There is always the possibility that there is a leak in the Broker code itself.
Back to top
View user's profile Send private message
dominik.schweers
PostPosted: Wed Feb 09, 2011 9:55 pm    Post subject: Reply with quote

Novice

Joined: 23 Oct 2008
Posts: 17

mqjeff wrote:

There are certain things that can be done in message flow coding that will fail to free memory.


Is this documented somewhere or can you give examples?

Thank you very much!
Back to top
View user's profile Send private message
lancelotlinc
PostPosted: Thu Feb 10, 2011 5:17 am    Post subject: Reply with quote

Jedi Knight

Joined: 22 Mar 2010
Posts: 4941
Location: Bloomington, IL USA

One way to help the GC out is to set all your objects to null as you exit the JCN. For example, you could have try catch finally and in your finally block, set all those objects you created to null. This will expedite their cleanup by GC and provide swifter access to contiguous memory blocks.
_________________
http://leanpub.com/IIB_Tips_and_Tricks
Save $20: Coupon Code: MQSERIES_READER
Back to top
View user's profile Send private message Send e-mail
Vitor
PostPosted: Thu Feb 10, 2011 5:18 am    Post subject: Reply with quote

Grand High Poobah

Joined: 11 Nov 2005
Posts: 26093
Location: Texas, USA

lancelotlinc wrote:
One way to help the GC out is to set all your objects to null as you exit the JCN. For example, you could have try catch finally and in your finally block, set all those objects you created to null. This will expedite their cleanup by GC and provide swifter access to contiguous memory blocks.


At what point in this thread did the OP say he was using JCNs?
_________________
Honesty is the best policy.
Insanity is the best defence.
Back to top
View user's profile Send private message
lancelotlinc
PostPosted: Thu Feb 10, 2011 5:25 am    Post subject: Reply with quote

Jedi Knight

Joined: 22 Mar 2010
Posts: 4941
Location: Bloomington, IL USA

Good morning Sir Vitor. May I buy you a cup of coffee?

>> At what point in this thread did the OP say he was using JCNs?

dominik.schweers asks for specific examples. I provided one that may help the memory situation., Did you have one you could offer?
_________________
http://leanpub.com/IIB_Tips_and_Tricks
Save $20: Coupon Code: MQSERIES_READER
Back to top
View user's profile Send private message Send e-mail
Vitor
PostPosted: Thu Feb 10, 2011 5:39 am    Post subject: Reply with quote

Grand High Poobah

Joined: 11 Nov 2005
Posts: 26093
Location: Texas, USA

lancelotlinc wrote:
Good morning Sir Vitor. May I buy you a cup of coffee?


Thanks, but the IV Thermos is in place.

lancelotlinc wrote:
dominik.schweers asks for specific examples. I provided one that may help the memory situation., Did you have one you could offer?


Your example doesn't fail to free memory, simply makes it free faster. It also underlines your earlier, slightly flawed assertion that WMB is a Java application. An inexperienced reader might have looked at this thread and spent a rather futile period of time trying to configure the GC for ESQL, or a mapping node, and overlooked the poor parser choice on a FileInput.

I accept my earlier comment did not fully explain my point and should have had some additional details.
_________________
Honesty is the best policy.
Insanity is the best defence.
Back to top
View user's profile Send private message
Esa
PostPosted: Thu Feb 10, 2011 5:48 am    Post subject: Reply with quote

Grand Master

Joined: 22 May 2008
Posts: 1387
Location: Finland

lancelotlinc wrote:

jconsole is provided as part of the Java runtime environment. It is distributed with the runtime. You would typically run jconsole on your Windows machine and connect to the JVM on the Sun machine.


Lancelot, how do you determine or set up the JXM server port of the execution group?

I tried to mqsichageproperties the jvmSystemProperty com.sun.management.jmxremote.port, but after that the execution group wouldn't start because of an unregognized option when creating JVM.
Back to top
View user's profile Send private message
lancelotlinc
PostPosted: Thu Feb 10, 2011 5:54 am    Post subject: Reply with quote

Jedi Knight

Joined: 22 Mar 2010
Posts: 4941
Location: Bloomington, IL USA

On Windows, edit the DataFlowEngine service properties dialog to include whatever port you want at the time Windows starts that service:

Code:
-Dcom.sun.management.jmxremote.port=3000


On AIX, you edit the command that starts DataFlowEngine to do the same.
_________________
http://leanpub.com/IIB_Tips_and_Tricks
Save $20: Coupon Code: MQSERIES_READER
Back to top
View user's profile Send private message Send e-mail
dominik.schweers
PostPosted: Thu Feb 10, 2011 6:26 am    Post subject: Reply with quote

Novice

Joined: 23 Oct 2008
Posts: 17

Thank you very much for the lively discussion!

The flows/EGs causing the memory problems do not use JAVA for mapping or lets say their "real" work.

Indeed there is a bit of JAVA in every flow of ours, because we use some JAVA in SubFlows for errorhandling stuff.

Any hint is welcome!
Back to top
View user's profile Send private message
lancelotlinc
PostPosted: Thu Feb 10, 2011 6:29 am    Post subject: Reply with quote

Jedi Knight

Joined: 22 Mar 2010
Posts: 4941
Location: Bloomington, IL USA

In the Java code that you do use, if you do not mark your objects as null when you are done with them, the fact that these objects do not get cleaned up expeditiously will impact your other objects, including Broker internals in both the C and Java languages.

It is a holistic system. One part will impact other parts even though they are different languages and otherwise unrelated.
_________________
http://leanpub.com/IIB_Tips_and_Tricks
Save $20: Coupon Code: MQSERIES_READER
Back to top
View user's profile Send private message Send e-mail
Display posts from previous:   
Post new topic  Reply to topic Goto page 1, 2, 3  Next Page 1 of 3

MQSeries.net Forum Index » WebSphere Message Broker (ACE) Support » limit on memory consumption of 64bit execution groups
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.