I don't know if it is necessary to add the statistics from Runtime.  Here is the relationship I see between the stats from Runtime and those got from MemoryMXBean.getHeapMemoryUsage()

Runtime.totalMemory() == MemoryUsage.getCommitted ()
Runtime.maxMemory() == MemoryUsage.getMax()
Runtime.freeMemory() == MemoryUsage.getCommitted() - MemoryUsage.getUsed()
Runtime.totalMemory() - Runtime.freeMemory() == MemoryUsage.getUsed()

++Vamsi


On Dec 4, 2007 6:51 PM, Anita Kulshreshtha <a_kulshre@yahoo.com> wrote:
  If you are interested in usedMemory and maxMemory as given by
Runtime, we could add that again. The JVM Stats give a rough estimate
of heap memory only.

Thanks
Anita

--- Vamsavardhana Reddy <c1vamsi1c@gmail.com> wrote:

> I am wondering if the following (which works) is the correct way to
> get
> maxHeapSize and usedMemory from a remote Geronimo server.
>
> import
> org.apache.geronimo.management.stats.BoundedRangeStatisticImpl;
>
>         Map map = new HashMap();
>         map.put("jmx.remote.credentials", new String[] {user,
> password});
>         JMXServiceURL address = new JMXServiceURL(
>                 "service:jmx:rmi:///jndi/rmi://"+host+ ":" + port +
> "/JMXConnector");
>         JMXConnector jmxConnector =
> JMXConnectorFactory.connect(address,
> map);
>         mbServerConnection = jmxConnector.getMBeanServerConnection();
>         objName = ObjectName.getInstance
> ("geronimo:J2EEServer=geronimo,name=JVM,j2eeType=JVM");
>         Stats stats = (Stats)
> mbServerConnection.getAttribute(objName,
> "stats");
>          BoundedRangeStatisticImpl statistic =
> (BoundedRangeStatisticImpl)
> stats.getStatistic ("HeapSize");
>         long maxMemory = statistic.getUpperBound();
>         long usedMemory = statistic.getCurrent();
>
> Is this ok?  Or, is there a better way?
>
> ++Vamsi
>



     ____________________________________________________________________________________
Be a better pen pal.
Text or chat with friends inside Yahoo! Mail. See how.   http://overview.mail.yahoo.com/