667481 members! Sign up to stay informed.

Sponsored Links


Resources

Enterprise Java
Research Library

Get Java white papers, product information, case studies and webcasts

News News News Messages: 56 Messages: 56 Messages: 56 Printer friendly Printer friendly Printer friendly Post reply Post reply Post reply XML XML XML

SAP Memory Analyzer downloadable for free

Posted by: Markus Kohler on June 12, 2007 DIGG
SAP Memory Analyzer, a tool for analysing Java heap dumps, can now be downloaded for free.

The unique features of this tool are:
  • provides powerful functions for finding the biggest objects in the heap, such as "retained size" and dominator tree analysis.
  • Easy-to-use Eclipse RCP based interface.
  • Analyze heap dumps > 1Gbyte and with up to around 20 Million objects on a 32 bit machine and even bigger heap dumps on a 64 bit machine.
  • Uses high performance algorithms, and indices, that speed up most operations after the heap dump has been initially parsed.
  • Comes with special SAP J2EE features, such as the ability to show the memory consumption for sessions and classloaders.
  • Works with the built in heap dumps of the following VMs : Sun JVMs (1.4.2_12 or higher and 1.5.0_07 or higher), HP-UX VM (1.4.2_11 or higher) and SAP JVMs (since 1.5.0)
  • Free download.

Threaded replies

·  SAP Memory Analyzer downloadable for free by Markus Kohler on Tue Jun 12 08:25:34 EDT 2007
  ·  Bad link and SAP site design ... by saravanan dharmalingam on Tue Jun 12 08:54:31 EDT 2007
    ·  Real Download Link by Vedran Lerenc on Tue Jun 12 09:12:15 EDT 2007
    ·  Re: Bad link and SAP site design ... by Markus Kohler on Tue Jun 12 10:32:12 EDT 2007
    ·  Good Thing It Only Runs on Windows by Bruce Fancher on Tue Jun 12 11:53:00 EDT 2007
      ·  Client is windows by Joseph Kampf on Wed Jun 13 09:52:57 EDT 2007
  ·  64 bit version by Martin Perez on Tue Jun 12 11:58:46 EDT 2007
    ·  Platform Support by Vedran Lerenc on Tue Jun 12 12:21:48 EDT 2007
      ·  Non installer download by Martin Perez on Tue Jun 12 12:29:07 EDT 2007
        ·  Extract the plugins from the installer by Vedran Lerenc on Tue Jun 12 15:56:48 EDT 2007
  ·  Re: SAP Memory Analyzer downloadable for free by Race Condition on Tue Jun 12 16:21:36 EDT 2007
  ·  It's really fast! by Rex Guildo on Tue Jun 12 17:22:08 EDT 2007
    ·  Re: It's really fast! by Markus Kohler on Wed Jun 13 10:01:30 EDT 2007
      ·  Re: It's really fast! by William Louth on Wed Jun 13 12:05:36 EDT 2007
        ·  Beautiful Evidence: (GC) Metric Monitoring by William Louth on Wed Jun 13 12:11:27 EDT 2007
          ·  Good heap size? by Rex Guildo on Wed Jun 13 17:57:14 EDT 2007
            ·  Re: Good heap size? by Ingo Rockel on Thu Jun 14 03:04:36 EDT 2007
              ·  Re: Good heap size? by William Louth on Thu Jun 14 04:13:17 EDT 2007
            ·  Re: Good heap size? by Markus Kohler on Thu Jun 14 03:59:24 EDT 2007
              ·  Re: Good heap size? by Rex Guildo on Thu Jun 14 05:05:02 EDT 2007
            ·  Re: Good heap size? by William Louth on Thu Jun 14 06:19:20 EDT 2007
              ·  Re: Good heap size? by Rex Guildo on Thu Jun 14 07:47:17 EDT 2007
                ·  Re: Good heap size? by William Louth on Thu Jun 14 08:36:38 EDT 2007
                  ·  Re: Good heap size? by Rex Guildo on Thu Jun 14 08:46:58 EDT 2007
                  ·  Leak Or Footprint Or Load Problem by Vedran Lerenc on Thu Jun 14 16:19:42 EDT 2007
                    ·  Re: Leak Or Footprint Or Load Problem by William Louth on Fri Jun 15 05:59:54 EDT 2007
                      ·  Re: Leak Or Footprint Or Load Problem by Markus Kohler on Fri Jun 15 06:49:46 EDT 2007
                        ·  Re: Leak Or Footprint Or Load Problem by William Louth on Fri Jun 15 07:48:07 EDT 2007
                          ·  Re: Leak Or Footprint Or Load Problem by Markus Kohler on Fri Jun 15 15:44:49 EDT 2007
                            ·  Evaluation conclusion by Rex Guildo on Sun Jun 17 17:11:25 EDT 2007
                              ·  Re: Evaluation conclusion by Markus Kohler on Wed Jun 20 04:56:12 EDT 2007
                                ·  Re: Evaluation conclusion by Rex Guildo on Wed Jun 20 11:47:47 EDT 2007
                                  ·  Re: Evaluation conclusion by Markus Kohler on Thu Jun 21 12:36:28 EDT 2007
                          ·  Re: Leak Or Footprint Or Load Problem by Markus Kohler on Wed Jun 20 04:52:35 EDT 2007
                  ·  Re: Good heap size? - Lose Fat by Brian Benson on Wed Aug 26 20:31:14 EDT 2009
                    ·  Free Nursing CEU by Brian Benson on Thu Oct 08 20:21:43 EDT 2009
              ·  Re: Good heap size? by Markus Kohler on Thu Jun 14 08:09:42 EDT 2007
      ·  Re: It's really fast! by Ingo Rockel on Thu Jun 14 03:00:10 EDT 2007
    ·  Re: It's really fast! by Rex Guildo on Sun Jun 17 17:05:37 EDT 2007
      ·  Re: It's really fast! by Markus Kohler on Wed Jun 20 05:03:26 EDT 2007
  ·  Re: SAP Memory Analyzer downloadable for free by Ingo Rockel on Wed Jun 13 07:30:37 EDT 2007
    ·  Dominator Tree by Markus Kohler on Wed Jun 13 09:50:57 EDT 2007
      ·  Re: Dominator Tree by Ingo Rockel on Thu Jun 14 02:58:25 EDT 2007
  ·  Re: SAP Memory Analyzer downloadable for free by Andreas Herz on Thu Jun 14 05:58:42 EDT 2007
  ·  Re. Using SAP Memory Analyzer on RAD by jb jb on Sat Jun 16 07:17:12 EDT 2007
    ·  Re: Re. Using SAP Memory Analyzer on RAD by Markus Kohler on Sat Jun 16 08:14:45 EDT 2007
  ·  This Tool is great, thankyou by Artur Brauer on Fri Jun 29 05:29:28 EDT 2007
    ·  Re: This Tool is great, thankyou by Markus Kohler on Fri Jun 29 18:12:27 EDT 2007
    ·  IBM System Dump Converter to HPROF??? by Vedran Lerenc on Mon Jul 02 06:09:08 EDT 2007
    ·  Re: This Tool is great, thankyou by Krum Tsvetkov on Thu Jul 05 10:07:31 EDT 2007
      ·  Re: Enhancements by Artur Brauer on Mon Jul 09 09:31:00 EDT 2007
  ·  NPE when loading heap dump with SAP Memory Analyzer by Scott Redden on Mon Jul 02 11:25:00 EDT 2007
    ·  Re: NPE when loading heap dump with SAP Memory Analyzer by Krum Tsvetkov on Thu Jul 05 10:02:56 EDT 2007
  ·  FindRoots and the dominator tree by David Griffiths on Wed Jul 18 18:25:28 EDT 2007
    ·  Dominators in SAP Memory Analyzer by Vedran Lerenc on Wed Jul 25 11:08:58 EDT 2007
    ·  IBM Heap Dumps by Vedran Lerenc on Wed Jul 25 11:14:32 EDT 2007
  ·  six pack abs by David Key on Fri May 15 21:39:24 EDT 2009
  Message #234368 Post reply Post reply Post reply Go to top Go to top Go to top

Bad link and SAP site design ...

Posted by: saravanan dharmalingam on June 12, 2007 in response to Message #234346
Link is not working.

This is really a bad example, when they design some page shouldn't take enough care?

  Message #234369 Post reply Post reply Post reply Go to top Go to top Go to top

Real Download Link

Posted by: Vedran Lerenc on June 12, 2007 in response to Message #234368
Hi,

the link points to the blog of Markus. They real download link is this one:

https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/webcontent/uuid/8070021f-5af6-2910-5688-bde8f4fadf31

Or this one for the Wiki on the tool:

https://www.sdn.sap.com/irj/sdn/wiki?path=/display/Java/Java+Memory+Analysis

Regards,

Vedran

  Message #234378 Post reply Post reply Post reply Go to top Go to top Go to top

Re: Bad link and SAP site design ...

Posted by: Markus Kohler on June 12, 2007 in response to Message #234368
Hi,
Link works fine and I fixed the frame in a frame problem.
Sorry for that.
Regards,
Markus

  Message #234385 Post reply Post reply Post reply Go to top Go to top Go to top

Good Thing It Only Runs on Windows

Posted by: Bruce Fancher on June 12, 2007 in response to Message #234368
Fortunately, no one has ever been know to run any other OS, so it's a good thing they didn't waste any resources porting it.

  Message #234387 Post reply Post reply Post reply Go to top Go to top Go to top

64 bit version

Posted by: Martin Perez on June 12, 2007 in response to Message #234346
Any link to a 64 bit version or at least to an installer able to run in a 64 bit operating system?

  Message #234388 Post reply Post reply Post reply Go to top Go to top Go to top

Platform Support

Posted by: Vedran Lerenc on June 12, 2007 in response to Message #234387
Hi,

an installer is only available for Windows 32 Bit, but the Wiki (https://www.sdn.sap.com/irj/sdn/wiki?path=/display/Java/Java+Memory+Analysis) says:

"We don't support more platforms at the moment, however, since we are based on Eclipse 3.2.0 you can try this: Download Eclipse 3.2.0 for your platform, copy our plug-ins into the plugins directory and open the Memory Analysis perspective. On Linux (x86_64/GTK 2) this proved to work."

It works on Linux 64 Bit - it's just some manual work. If you already have an Eclipse installation on your platform, try to copy the plugins to your Eclipse plugins folder, restart and open the correct perspective within Eclipse.

Cheers,

Vedran

  Message #234390 Post reply Post reply Post reply Go to top Go to top Go to top

Non installer download

Posted by: Martin Perez on June 12, 2007 in response to Message #234388
Vedran, where is the non-installer download? I can't find any link to it. As I mentioned the installer does not work in 64 bit windows machines so there is no way to directly grab the plugins folder.

  Message #234402 Post reply Post reply Post reply Go to top Go to top Go to top

Extract the plugins from the installer

Posted by: Vedran Lerenc on June 12, 2007 in response to Message #234390
Hi Martin,

you can open the EXE with a tool like WinRar/WinZip, look for the largest file, Resource1.zip, extract the largest file therein called MemoryAnalyzer.zip and voilà, you have your plugins in the plugins folder.

Regards,

Vedran

  Message #234406 Post reply Post reply Post reply Go to top Go to top Go to top

Re: SAP Memory Analyzer downloadable for free

Posted by: Race Condition on June 12, 2007 in response to Message #234346
Only humans (and really smart dogs) can analyze.

  Message #234411 Post reply Post reply Post reply Go to top Go to top Go to top

It's really fast!

Posted by: Rex Guildo on June 12, 2007 in response to Message #234346
Thanks for this contribution! It's working really fast, even with a huge heap dump!

For generating heap dumps you may also use the SendSignal tool: http://www.latenighthacking.com/projects/2003/sendSignal

BTW: Does anybody know a tool that analyzes a VM's garbage collection behaviour and reports the best suited VM options?

  Message #234436 Post reply Post reply Post reply Go to top Go to top Go to top

Re: SAP Memory Analyzer downloadable for free

Posted by: Ingo Rockel on June 13, 2007 in response to Message #234346
Hey,

nice tool, quite difficult to install though (at least on linux)...

Especially handy is the "Calculate Retained Size" option to find big objects and maybe mem leaks.

regards,

Ingo

  Message #234442 Post reply Post reply Post reply Go to top Go to top Go to top

Dominator Tree

Posted by: Markus Kohler on June 13, 2007 in response to Message #234436
Hi Ingo,
Thanks for your positive feedback.

Have you tried the dominator tree view ?
With this view you can easily find the biggest objects (in terms of retained size) and also easily analyse, why they are big.

Regards,
Markus

Hey,

nice tool, quite difficult to install though (at least on linux)...

Especially handy is the "Calculate Retained Size" option to find big objects and maybe mem leaks.

regards,

Ingo


  Message #234443 Post reply Post reply Post reply Go to top Go to top Go to top

Client is windows

Posted by: Joseph Kampf on June 13, 2007 in response to Message #234385
The tool is windows. You can still get a Head Dump from one of the Sun JVMs that are supported regardless of the OS.

Joe

  Message #234444 Post reply Post reply Post reply Go to top Go to top Go to top

Re: It's really fast!

Posted by: Markus Kohler on June 13, 2007 in response to Message #234411
Hi,
Thanks for your feedback.
Regarding your question about a tool that analyses the VM's GC behaviour, the only tool that I know (at the top of my head) is http://java.sun.com/developer/technicalArticles/Programming/GCPortal/
.

I can't tell you whether it works as advertised, because I've not yet had the time to try it.
In my experience tuning GC parameters such as heap size is easy enough, that it can be done without a tool. The more difficult to optimize parameters such as for example the tenuring threshold will (usually) not improve your performance by a big factor. These option also tend to be application depended, and so it would be very difficult to find an optimal value for all the different applications that may run on your J2EE Server.


Regards,
Markus

  Message #234459 Post reply Post reply Post reply Go to top Go to top Go to top

Re: It's really fast!

Posted by: William Louth on June 13, 2007 in response to Message #234444
The problem with any GC "take a guess for me" tool is that

- Any change within the application code, the workload patterns, external resource responses could invalidate a number of tweaks applied.
- The knowledge is static and embedded within the tool whereas with active capacity management (monitoring, planning, ...) the knowledge based grows and adapts across systems and applications enabling improved resource forecasting.

I personally prefer tools that aid in rapid knowledge acquisition (semi-automated problem analysis) and retention (recorded behavioral execution patterns, symptoms, causes/factors,...).

When I see high levels of GC I look for the root cause within the application (not just the code but the concurrent workload and request/transaction mixes) before attempting JVM tweaks unless it is obvious the parameters are completely misaligned to usage.

Kind regards,

William Louth
JXInsight Product Architect
CTO, JINSPIRED

"Performance Management for Java EE, SOA and Grid Computing"
http://www.jinspired.com

  Message #234460 Post reply Post reply Post reply Go to top Go to top Go to top

Beautiful Evidence: (GC) Metric Monitoring

Posted by: William Louth on June 13, 2007 in response to Message #234459
I forgot to mention that there is a tool to help determine the impact of GC on various systems, applications, components, and requests.

Beautiful Evidence: Metric Monitoring
http://blog.jinspired.com/?p=33

- William

  Message #234478 Post reply Post reply Post reply Go to top Go to top Go to top

Good heap size?

Posted by: Rex Guildo on June 13, 2007 in response to Message #234460
Thanks for the answers!

In my experience tuning GC parameters such as heap size is easy enough, that it can be done without a tool. The more difficult to optimize parameters such as for example the tenuring threshold will (usually) not improve your performance by a big factor.


When I see high levels of GC I look for the root cause within the application (not just the code but the concurrent workload and request/transaction mixes) before attempting JVM tweaks unless it is obvious the parameters are completely misaligned to usage.


So, you both guys recommend not to focus too much on GC parameters. That's good news for me. I always felt a bit guilty for not using this nerd flags.

But what about the heap size? How do you estimate a good heap size for a system? For a web applictaion I usually recommend the heap size -Xms=400m -Xmx=1000m per cluster node, no matter which JDK or OS. For sure, I have to take care that a node doesn't require more memory.

What are your recommendations on heap size? Do you know any good Benchmark that focuses on heap size?

  Message #234485 Post reply Post reply Post reply Go to top Go to top Go to top

Re: Dominator Tree

Posted by: Ingo Rockel on June 14, 2007 in response to Message #234442
Hi Markus,

yes I've tried, quite nice to see the content of e.g. big hash maps. But one suggestion: In my testing dump I have a problematic map (which caused an OOM) which has about 500.000 objects in it, selecting to display all never comes back. Maybe you can split the display in fraction in lets say about 1000 objects? Just like e.g. the YourKit-Profiler does?

kind regards,

Ingo

  Message #234486 Post reply Post reply Post reply Go to top Go to top Go to top

Re: It's really fast!

Posted by: Ingo Rockel on June 14, 2007 in response to Message #234444
Another quite nice tool for GC-Analysis is the GCViewer:

http://www.tagtraum.com/gcviewer.html

the thread dump analyzer Samurai also has some GC Views builtin:

http://yusuke.homeip.net/samurai/?english

- Ingo

  Message #234487 Post reply Post reply Post reply Go to top Go to top Go to top

Re: Good heap size?

Posted by: Ingo Rockel on June 14, 2007 in response to Message #234478
Heap size depends very much depends on your application. If you use some sort of caching I would usually suggest to set mx=ms.

Concerning tweaking GC parameters I would usually suggest to use the loggc option with PrintGCDetails and analyse the log file if the NewSpace and the Survivors are big enough. If these are to small and many new objects directly get propagated into the tenured space this will eventually lead into a Full GC.

- Ingo

  Message #234494 Post reply Post reply Post reply Go to top Go to top Go to top

Re: Good heap size?

Posted by: Markus Kohler on June 14, 2007 in response to Message #234478
[snip]

So, you both guys recommend not to focus too much on GC parameters. That's good news for me. I always felt a bit guilty for not using this nerd flags.

But what about the heap size? How do you estimate a good heap size for a system? For a web applictaion I usually recommend the heap size -Xms=400m -Xmx=1000m per cluster node, no matter which JDK or OS. For sure, I have to take care that a node doesn't require more memory.

What are your recommendations on heap size? Do you know any good Benchmark that focuses on heap size?


Yes. In my experience changing those "obscure" GC parameters is in almost all cases only fine tuning. I know only a few exceptions, such as if you switch to a completely new hardware design, such as Sun's Niagara Chip. I think at least in the beginning the default settings would not work very well on this chip.

Regarding the heap size, Ingo mentioned in another reply the GCViewer tool. You can use this tool to see how your application behaves and then choose the heap size accordingly. We usually then set the min size equal to the max size, because that avoids the Full GC's, that the VM does before it increases the heap.
Since this is all very application specific, I think a having a standard benchmark for this doesn't really make sense. You basically need an application specific benchmark.

For bigger heap sizes (64 bit) and multicore servers you may also want to consider to switch to the Concurrent Mark and Sweep collector (disclaimer: not yet recommended on the SAP J2EE server)

I guess I should have written a blog about this ;)

Regards,
Markus

  Message #234495 Post reply Post reply Post reply Go to top Go to top Go to top

Re: Good heap size?

Posted by: William Louth on June 14, 2007 in response to Message #234487
"I would usually suggest to use the loggc option with PrintGCDetails and analyse the log file"

The problem with this type of common and easy approach but not terribly effective approach is that you lose the complete context. Temporary objects (created and only referenced during requests) can get promoted to tenured space when a request is delayed at one of its execution points (database, messaging, any other external resource type) causing more expensive GC collections. This is why escape analysis is not so applicable for Java EE applications. The problem here is necessarily the sizing but the resource service times.

Looking at GC log entries whilst oblivious to the workload patterns (level of concurrency, object allocation volumes,...) during the period could result in the incorrect change that does not address the underlying issue. A quick fix in handling an incident is understandable but it does has it cost in that the underlying problem is not analyzed sufficiently and no one is any the wiser -a reason why I personally have strong reservations regarding automatic deployment, provisioning and resource management software.

kind regards,

-William

  Message #234502 Post reply Post reply Post reply Go to top Go to top Go to top

Re: Good heap size?

Posted by: Rex Guildo on June 14, 2007 in response to Message #234494
Yes. In my experience changing those "obscure" GC parameters is in almost all cases only fine tuning.


1. lesson learned: don't tweak the GC parameters

We usually then set the min size equal to the max size, because that avoids the Full GC's, that the VM does before it increases the heap.


2. lesson learend: choose Xms == Xmx

Since this is all very application specific, I think a having a standard benchmark for this doesn't really make sense. You basically need an application specific benchmark.


There is petshop. Isn't there any benchmark that tests a bad implementation of petshop with Tomcat, diffrent JDKs, diffrent heap sizese and diffrent OS?

Heap size depends very much depends on your application.


That's what I usually say, when "they" ask me. But we are still far from "good heap" size :-(

I guess you now your applications very well. So, I ask everybody to send me the VM options of your applications (jdk , OS, what kind of application, how many users?) Omit any information, that is not dedicated for public.


May be there will be some common values. I'm really curious!

  Message #234503 Post reply Post reply Post reply Go to top Go to top Go to top

Re: SAP Memory Analyzer downloadable for free

Posted by: Andreas Herz on June 14, 2007 in response to Message #234346
Hi,

cool tool. .....BUT: where is the update site?!

I have seen, that there is no native code in the
install package for the profiler. So it is no additional
work to provide the plugin for all plattforms.

Why must I install an additional Eclipse Enviroment? :-(
Why SAP only support windows 32?

  Message #234505 Post reply Post reply Post reply Go to top Go to top Go to top

Re: Good heap size?

Posted by: William Louth on June 14, 2007 in response to Message #234478
Hi Rex,

I do not normally set the heap max size so high for "typical" web applications as I prefer to have a larger number of JVM's on a 2 or more physical servers ensuring the application can tolerant both hardware and software failures. Again this highly dependent on the application workload (data volumes and concurrency levels). If requests start allocating 100M-200M during processing then I will revisit my defaults. By partitioning more and creating smaller sized JVM's the application as a whole can be less impacted by GC cycles. That is assuming that there is not communication and co-ordination between the partitions (nodes).

Strangely enough we do have many popular Java community sites that run on a single server (hardware) with just a single web container (software). In general not very reliable sites but no one seems to be bothered or astonished.

- William

  Message #234513 Post reply Post reply Post reply Go to top Go to top Go to top

Re: Good heap size?

Posted by: Rex Guildo on June 14, 2007 in response to Message #234505
I do not normally set the heap max size so high for "typical" web applications as I prefer to have a larger number of JVM's on a 2 or more physical servers ensuring the application can tolerant both hardware and software failures. Again this highly dependent on the application workload (data volumes and concurrency levels).

I agree.

Again this highly dependent on the application workload (data volumes and concurrency levels).

Sure.

So, which heap size (per VM) would you recommend for a "typical web application" as a good initial value?

  Message #234516 Post reply Post reply Post reply Go to top Go to top Go to top

Re: Good heap size?

Posted by: Markus Kohler on June 14, 2007 in response to Message #234505
Hi Rex,

I do not normally set the heap max size so high for "typical" web applications as I prefer to have a larger number of JVM's on a 2 or more physical servers ensuring the application can tolerant both hardware and software failures. Again this highly dependent on the application workload (data volumes and concurrency levels). If requests start allocating 100M-200M during processing then I will revisit my defaults. By partitioning more and creating smaller sized JVM's the application as a whole can be less impacted by GC cycles. That is assuming that there is not communication and co-ordination between the partitions (nodes).

Strangely enough we do have many popular Java community sites that run on a single server (hardware) with just a single web container (software). In general not very reliable sites but no one seems to be bothered or astonished.

- William



We found that on 32 bit Machines, that it can make sense to have more than one JVM running because of the typical limitations of a 32 bit OS. The physical addressable memory might be 4Gbyte and you want to run 2 JVM's with (almost) 2 Gbyte.

On the other side you will waste some memory because of classes being loaded into memory more than once and other JVM overhead.

Because on 64 bit there's effectively no such memory limitation, you might not want to run more than one JVM per machine. Especially if you can use the Concurrent mark and sweep collector, you will not have any big problems with long GC pauses any more.



Regards,
Markus

  Message #234520 Post reply Post reply Post reply Go to top Go to top Go to top

Re: Good heap size?

Posted by: William Louth on June 14, 2007 in response to Message #234513
I normally set the max heap size between 512M and 768M but this is a personal preference with very little supporting evidence other than the fact that most application servers ship with similar defaults within their scripts. This range seems a good trade-off between performance management (long GC pauses) and application availability management (more partitions).

But I would expect that anyone deploying into a production environment would have already done some pre-production testing and determined the required concurrent resource capacity needs and adjusted the heap settings accordingly.

OutOfMemoryError's Are Not Always Caused By Memory Leaks
http://www.jinspired.com/products/jxinsight/outofmemoryexceptions.html

regards,

William

  Message #234525 Post reply Post reply Post reply Go to top Go to top Go to top

Re: Good heap size?

Posted by: Rex Guildo on June 14, 2007 in response to Message #234520
I normally set the max heap size between 512M and 768M but this is a personal preference with very little supporting evidence other than the fact that most application servers ship with similar defaults within their scripts.

Thanks a lot for this answer!
But I would expect that anyone deploying into a production environment would have already done some pre-production testing and determined the required concurrent resource capacity needs and adjusted the heap settings accordingly.

Pre-production testing is done in the end. To define a "good heap size" per VM would be a great help for system planning.

For JDK 1.5 I found the following advice by Sun (http://java.sun.com/docs/hotspot/gc5.0/gc_tuning_5.html):
Unless you have problems with pauses, try granting as much memory as possible to the virtual machine.


  Message #234561 Post reply Post reply Post reply Go to top Go to top Go to top

Leak Or Footprint Or Load Problem

Posted by: Vedran Lerenc on June 14, 2007 in response to Message #234520
Hi William,

> OutOfMemoryError's Are Not Always Caused By Memory Leaks.

True! It could be a footprint problem (too much memory consumption in general) or a load issue (too many requests). There are even more subtile problems, e.g. with the semi-spaces and a full tenured generation.

In reality memory leaks are comparatively easy to detect with the tool if the leak can grow over time (Dominator Tree). However, in a Java application server with hundreds of deployed services and applications memory footprint problems are far more pressing. For that reason the tool allows to group the memory consumption by class loader. This is a very effective way to find out about the memory consumption of the deployed components as they all usually get their own class loader.

About the load issue, the tool offers OQL to query e.g. all requests. You can then see their memory consumption, but this often doesn't help because the thread holds on to the memory, but this can be uncovered with a command which gives you the retained memory of all GC roots hold per thread.

Regards,

Vedran

  Message #234582 Post reply Post reply Post reply Go to top Go to top Go to top

Re: Leak Or Footprint Or Load Problem

Posted by: William Louth on June 15, 2007 in response to Message #234561
Hi Vedran,

I wanted to make it clear that the posting of the performance insight article was in relation to the GC and capacity planning discussions within this thread.

Before one moves an application into production an assessment of the object allocation resource needs to be performed for most of the business transactions within the application. Once the object creation costs (counts and bytes) has been assessed a transaction profile mix is created with expected concurrent workloads and data volumes. This I would argue should be much more common activity within the development and testing life-cycle than investigating heaps for memory leaks. Sadly in practice this is not the case. Most performance testing teams focus simply loading a server in order to determine ceilings rather than trying to model and understand the software and system execution models including resource consumption and management. The problem with this, which I have stated over and over, is that one has limited the knowledge acquisition which would help when production problems do occur. With this we get operations screaming at the testing teams for not performing sufficient performance or capacity testing when real problems do arise that do not fit the artificial test scenarios created. Resolution of the problem is protracted because it all looks like a black box and its anyone's guess what the problem is.

William

  Message #234583 Post reply Post reply Post reply Go to top Go to top Go to top

Re: Leak Or Footprint Or Load Problem

Posted by: Markus Kohler on June 15, 2007 in response to Message #234582
Hi Vedran,

I wanted to make it clear that the posting of the performance insight article was in relation to the GC and capacity planning discussions within this thread.

Before one moves an application into production an assessment of the object allocation resource needs to be performed for most of the business transactions within the application. Once the object creation costs (counts and bytes) has been assessed a transaction profile mix is created with expected concurrent workloads and data volumes. This I would argue should be much more common activity within the development and testing life-cycle than investigating heaps for memory leaks. Sadly in practice this is not the case. Most performance testing teams focus simply loading a server in order to determine ceilings rather than trying to model and understand the software and system execution models including resource consumption and management. The problem with this, which I have stated over and over, is that one has limited the knowledge acquisition which would help when production problems do occur. With this we get operations screaming at the testing teams for not performing sufficient performance or capacity testing when real problems do arise that do not fit the artificial test scenarios created. Resolution of the problem is protracted because it all looks like a black box and its anyone's guess what the problem is.

William


Hi William,
A fully agree with most of your statements. I think performance is very often considered too late in the process.

Only doing performance test at the end and then try to reach your performance goals can be very difficult, time consuming and therefore costly.

Still even if you have a model, and your model is complex, you might want to test your model against the reality.
You will need a tool like ours to be able to test whether you really consume as much memory as your model predicts.

I think it is also a little bit surprising that so far there was not so much focus in our industrie on memory consumption analysis, neither in Java nor in any other programming language. Only one or maybe 2 other tools, apart from ours, come to me mind that would really try to make memory consumption analysis of enterprise applications feasible.


Regards,
Markus Kohler

PS: please make JXInsight work on our application server :)

  Message #234587 Post reply Post reply Post reply Go to top Go to top Go to top

Re: Leak Or Footprint Or Load Problem

Posted by: William Louth on June 15, 2007 in response to Message #234583
Hi Markus,

I believe one of the reasons for the stagnation in memory analysis techniques has been due to the approach used by tools in performing the data collection. I am delighted that the trend at the moment is to focus on analyzing the heap-dumps generated by the JVM's themselves instead of creating embedded agents to collect and stream the data to a console - mainly because the memory profilers crashed the JVM's when the data set was enterprise like which is not acceptable in a production environment. I myself have considered adding heap dump analysis to JXInsight since the formats of the dumps has become documented and stable and the contents more complete. Not to worry we are focused at this moment on other areas that have no alternative solutions at present.

I will be trying out the tool as soon as I have a nice test case to work with. Does it ship with any existing dumps I can use to explore the feature set?

-William

PS: I will see what we can do to get the integration moving. I even wrote a JVMInsight extension to help with determining the class loader hierarchy of the SAP NetWeaver product. http://blog.jinspired.com/?p=56

  Message #234633 Post reply Post reply Post reply Go to top Go to top Go to top

Re: Leak Or Footprint Or Load Problem

Posted by: Markus Kohler on June 15, 2007 in response to Message #234587
Hi Markus,

I believe one of the reasons for the stagnation in memory analysis techniques has been due to the approach used by tools in performing the data collection. I am delighted that the trend at the moment is to focus on analyzing the heap-dumps generated by the JVM's themselves instead of creating embedded agents to collect and stream the data to a console - mainly because the memory profilers crashed the JVM's when the data set was enterprise like which is not acceptable in a production environment. I myself have considered adding heap dump analysis to JXInsight since the formats of the dumps has become documented and stable and the contents more complete. Not to worry we are focused at this moment on other areas that have no alternative solutions at present.

I will be trying out the tool as soon as I have a nice test case to work with. Does it ship with any existing dumps I can use to explore the feature set?

-William

PS: I will see what we can do to get the integration moving. I even wrote a JVMInsight extension to help with determining the class loader hierarchy of the SAP NetWeaver product. http://blog.jinspired.com/?p=56


I fully agree that the profiling API based heap dump implementations were pretty useless in a production environment. At least on 32 bit you would very often run out of memory and crash the VM.

I think we don't ship a really interesting heap dump, but we may produce one and put it on the wiki. I will check.

Regards,
Markus Kohler

  Message #234649 Post reply Post reply Post reply Go to top Go to top Go to top

Re. Using SAP Memory Analyzer on RAD

Posted by: jb jb on June 16, 2007 in response to Message #234346
Hi
I'm currently using RAD 6.0 and I am not able to use RAD's memory analyzer/profiler due to some AgentController plugin issue. Does anyone know if I could use SAP memory Analyzer on RAd since RAD is based on eclipse?
Thanks
JB

  Message #234651 Post reply Post reply Post reply Go to top Go to top Go to top

Re: Re. Using SAP Memory Analyzer on RAD

Posted by: Markus Kohler on June 16, 2007 in response to Message #234649
Hi,
I don't know on which version of Eclipse RAD has been build.
If it's based on Eclipse 3.2 it might work.
You just have to copy the SAP Memory Analyzer plugins to the RAD plugins directory.
Beware that you do that at your own risk.
I would backup the RAD installation beforehand.


Regards,
Markus

  Message #234670 Post reply Post reply Post reply Go to top Go to top Go to top

Re: It's really fast!

Posted by: Rex Guildo on June 17, 2007 in response to Message #234411
For generating heap dumps you may also use the SendSignal tool: http://www.latenighthacking.com/projects/2003/sendSignal

Forget that, it only supports thread dumps ...

  Message #234671 Post reply Post reply Post reply Go to top Go to top Go to top

Evaluation conclusion

Posted by: Rex Guildo on June 17, 2007 in response to Message #234633
You SAP guys should acquire JINSPIRED before Oracle does.

  Message #234824 Post reply Post reply Post reply Go to top Go to top Go to top

Re: Leak Or Footprint Or Load Problem

Posted by: Markus Kohler on June 20, 2007 in response to Message #234587
Hi William,
We ship a small heap dump.

After you started the tool, you will first see the Welcome Page.

To get to the example heap dump do the following steps :

Welcome Page -> Tutorials -> Basic Analysis -> Step 1: Open a heap dump -> Click to perform


Regards,
Markus

  Message #234825 Post reply Post reply Post reply Go to top Go to top Go to top

Re: Evaluation conclusion

Posted by: Markus Kohler on June 20, 2007 in response to Message #234671
Hi "Rex Guildo",
Does your comment mean, that you like both tools ? ;)


Gruss,
Markus

  Message #234826 Post reply Post reply Post reply Go to top Go to top Go to top

Re: It's really fast!

Posted by: Markus Kohler on June 20, 2007 in response to Message #234670
Hi "Rex Gildo",
For generating heap dumps you may also use the SendSignal tool: http://www.latenighthacking.com/projects/2003/sendSignal

Forget that, it only supports thread dumps ...


No problem. It should work because the signal is the same.
You only have to add the option -XX:+HeapDumpOnCtrlBreak to your JVM settings. Check my blog here https://weblogs.sdn.sap.com/pub/wlg/3800.


We actually ship a similar command with our J2EE server called sapntkill.exe.
You may want to check my blog here https://weblogs.sdn.sap.com/pub/wlg/4425, where I describe how to do thread dumps with it.


Regards,
Markus

  Message #234848 Post reply Post reply Post reply Go to top Go to top Go to top

Re: Evaluation conclusion

Posted by: Rex Guildo on June 20, 2007 in response to Message #234825
Does your comment mean, that you like both tools ?

Yes. This is my new CIS stack (alphabetic order):

- GCviewer
- JXInsight
- SAP Memory Analyzer
- SendSignal


Thanks to all for your contributions!
(If you know "the good heap size", don't hesitate to tell me)

  Message #234936 Post reply Post reply Post reply Go to top Go to top Go to top

Re: Evaluation conclusion

Posted by: Markus Kohler on June 21, 2007 in response to Message #234848
Does your comment mean, that you like both tools ?

Yes. This is my new CIS stack (alphabetic order):

- GCviewer
- JXInsight
- SAP Memory Analyzer
- SendSignal


Thanks to all for your contributions!
(If you know "the good heap size", don't hesitate to tell me)




Sounds like a good combination to me:)
Also I said a general rule for memory settings doesn't really work well, I will give it a try :

I assume you run only your Java application on the machine.
On 32 Bit get as much memory as your OS can use (3 Gbyte on Windows for example). If you want to run with one node on the machine set your heap size as high as you can (usually around 1200Mbyte -Xms =-Xmx). Of course you have to ensure that you don't get into swapping.

Consider using 2 instances of your application server running on one machine and set the heap size accordingly (1024Mbyte should work):

On 64 bit set the heap size as high as you can, given your physical memory size. Using more than one node usually doesn't seem to have an advantage on 64 bit.


Regards,
Markus

  Message #235455 Post reply Post reply Post reply Go to top Go to top Go to top

This Tool is great, thankyou

Posted by: Artur Brauer on June 29, 2007 in response to Message #234346
I worked with a lot with JProbe and OptimizeIt.
Also I tried JProfiler and YourKit.
But from now on this tool is my favorite now to look for memory leaks.

It is really fast and handles large heapdumps easily.
It's easy to use as well and it presents you the information in a way easy to understand.
In other tools one usually gets so many paths to one object,
that it is difficult to find the critical one.

Three things could make it even better:
JProbe has the feature to remove a reference to see whether
a loitering object can be garbage collected afterwards.
This I find very helpful, because sometimes there still exists another path that prevents the object from beeing garbage collected.

In the inspector the table with the instance attributes should have sortable columns. This should be pretty easy to do, but is so much helpful when having a large number of attributes.

Support for the IBM-heapdump is very desirable as well.
Or does anybody know about a converter?

Regards,
Artur

  Message #235507 Post reply Post reply Post reply Go to top Go to top Go to top

Re: This Tool is great, thankyou

Posted by: Markus Kohler on June 29, 2007 in response to Message #235455
Hi Artur,
Thanks a lot for your compliments !

Regarding the JProbe feature, I think we have something more powerful with the "immediate dominators" functionality.
Check my colleagues blog entry here :
https://www.sdn.sap.com/irj/sdn/weblogs?blog=/pub/wlg/6851

Support of the IBM heap dump is currently difficult, because there's different information in these dumps than in the SUN hprof dumps and because the format is not documented (at least to my knowledge).

Regards,
Markus

I worked with a lot with JProbe and OptimizeIt.
Also I tried JProfiler and YourKit.
But from now on this tool is my favorite now to look for memory leaks.

It is really fast and handles large heapdumps easily.
It's easy to use as well and it presents you the information in a way easy to understand.
In other tools one usually gets so many paths to one object,
that it is difficult to find the critical one.

Three things could make it even better:
JProbe has the feature to remove a reference to see whether
a loitering object can be garbage collected afterwards.
This I find very helpful, because sometimes there still exists another path that prevents the object from beeing garbage collected.

In the inspector the table with the instance attributes should have sortable columns. This should be pretty easy to do, but is so much helpful when having a large number of attributes.

Support for the IBM-heapdump is very desirable as well.
Or does anybody know about a converter?

Regards,
Artur


  Message #235551 Post reply Post reply Post reply Go to top Go to top Go to top

IBM System Dump Converter to HPROF???

Posted by: Vedran Lerenc on July 02, 2007 in response to Message #235455
Hi,

yes, does anybody have written a converter from:

IBM System Dump/DTFJ API -> HPROF binary heap dumps ???

(NOT PHD, that format does not contain enough information for a conversion to HPROF binary heap dumps. System dumps do but to my knowledge not the format is specified by IBM, but an API for it, called DTFJ)

Vedran

  Message #235581 Post reply Post reply Post reply Go to top Go to top Go to top

NPE when loading heap dump with SAP Memory Analyzer

Posted by: Scott Redden on July 02, 2007 in response to Message #234346
Hi,

Has anyone come across a NPE when trying to load a heap dump?

I get the following :

!SESSION 2007-07-02 13:45:02.848 -----------------------------------------------
eclipse.buildId=I20070608-1718
java.version=1.6.0_01
java.vendor=Sun Microsystems Inc.
BootLoader constants: OS=linux, ARCH=x86_64, WS=gtk, NL=en_GB
Command-line arguments: -os linux -ws gtk -arch x86_64

!ENTRY com.sap.tools.memory.ui.core 1 0 2007-07-02 13:47:37.247
!MESSAGE Heap /sbcimp/dyn/logfiles/jetpac/MS-TFI1-JeT_Stm2.hprof contains 36,440,149 objects

!ENTRY org.eclipse.core.jobs 4 2 2007-07-02 13:57:59.952
!MESSAGE An internal error occurred during: "parsing /sbcimp/dyn/logfiles/jetpac/MS-TFI1-JeT_Stm2.hprof".
!STACK 0
java.lang.NullPointerException
at com.sap.tools.memory.snapshot.hprof.HprofParserHandlerImpl.cleanupGarbage(HprofParserHandlerImpl.java:501)
at com.sap.tools.memory.snapshot.hprof.HprofParserHandlerImpl.createSnapshot(HprofParserHandlerImpl.java:321)
at com.sap.tools.memory.snapshot.SnapshotFactory.parse(SnapshotFactory.java:402)
at com.sap.tools.memory.snapshot.SnapshotFactory.createSnapshot(SnapshotFactory.java:113)
at com.sap.tools.memory.ui.core.internal.ParseHeapDumpJob.run(ParseHeapDumpJob.java:40)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)

  Message #235844 Post reply Post reply Post reply Go to top Go to top Go to top

Re: NPE when loading heap dump with SAP Memory Analyzer

Posted by: Krum Tsvetkov on July 05, 2007 in response to Message #235581
Hi Scott,

I have analyzed the heap dump you sent me, and found that the problems have appeared, because the format of the hprof dump generated by using jmap had some differences (in my opinion incorrect) compared to the dumps the VMs on the different platforms produce on OutOfMemoryError or on ctrl_break event.

I have implemented some changes, so that our future versions are able to work with jmap-produced dumps despite of the mentioned differences.

Thank you for pointing us to the problem.

Regards, Krum

  Message #235845 Post reply Post reply Post reply Go to top Go to top Go to top

Re: This Tool is great, thankyou

Posted by: Krum Tsvetkov on July 05, 2007 in response to Message #235455
Hi Artur,

Thank you for the good feedback and suggestions. I wanted to comment on this one:
>> JProbe has the feature to remove a reference to see whether
>> a loitering object can be garbage collected afterwards.
>> This I find very helpful, because sometimes there still exists another path that prevents the object from beeing garbage collected.

Indeed this is very helpful. And we have already done something in this direction (but not included in the version currently available for download). What we have is the possibility to specify when using the "Paths from the GC roots" one or several Class/field pairs, defining which paths should not be taken into account. For example, if you have found that the reference through MyClass.myField should not be there, then you can calculate the paths from the GC roots, excluding the ones going through MyClass/myField.
Do you think this is enough? Or you have some more suggestions?

Regards,
Krum

  Message #236084 Post reply Post reply Post reply Go to top Go to top Go to top

Re: Enhancements

Posted by: Artur Brauer on July 09, 2007 in response to Message #235845
Hi Krum,

I reckon the filter you describe would do the job in many cases. Though actually removing references based on instances is more powerfull than based on class/field pairs.

Imagine you got a PropertyChangeListener that causes the memory leak.
Filtering out PropertyChangeSupport/listeners would then filter out a large set of object. But if there is another PropertyChangeListener reachable by a totally different path you would not be able to find it -- and I had these cases.

There is one more little feature I would find useful: in the "Paths from the GC roots"-View the button "Find Next Paths" always searches for 30 next paths. How about a second button "Find all paths", or make the number for next configurable somewhere?

Regards,
Artur

  Message #236745 Post reply Post reply Post reply Go to top Go to top Go to top

FindRoots and the dominator tree

Posted by: David Griffiths on July 18, 2007 in response to Message #234346
Just wondered if you've ever heard of FindRoots? The idea of using the dominator tree looks strangely familiar :)

Your tool looks interesting though. We have a parser for IBM PHD files so you shouldn't need to know the format. There should be sufficient info in the PHD file to do your analysis. One advantage of PHD files is that they are much smaller than HPROF files.

I believe someone is working on a PHD to HPROF converter.

  Message #236999 Post reply Post reply Post reply Go to top Go to top Go to top

Dominators in SAP Memory Analyzer

Posted by: Vedran Lerenc on July 25, 2007 in response to Message #236745
Hi David,

Yep, the dominator was a major breakthrough in the tool! Thanks for commenting on it!

Maybe you have seen that we use the concept of dominators not only in a dominator tree? We use dominators for:

a.) Instant retained size per object
b.) Dominator tree showing the biggest distinct objects
c.) Grouping of the dominator tree to isolate aggregation patterns
d.) Following the dominators with exclude pattern to learn about the object with keeps an object or a set of objects alive
e.) Getting an absurdly quick approximation/lower bound for the retained size of a set of objects

If you are interested, in my blog I compiled a short history on how we exploited the dominators and how we stumbled over them in a research paper while trying to solve the problem of computing the retained size per single object instantly.

Regards,
Vedran

  Message #237000 Post reply Post reply Post reply Go to top Go to top Go to top

IBM Heap Dumps

Posted by: Vedran Lerenc on July 25, 2007 in response to Message #236745
Hi David,

About the PHD files, as far as we know, PHD files miss information about class loaders, GC roots and field values.

Unfortunately class loaders are very important for grouping memory consumption per deployment unit (see my blog also on this). GC roots are very important for GC simulation and dominators. I read that unreferenced objects can be interpreted as GC roots, but GC roots don’t have to be unreferenced. I am not a PHD expert, I have to admit, but from what I saw I just don’t have the correct GC information for a proper interpretation of the data. The missing field values just kill a lot of our features, e.g. name resolvers to better/quicker grasp what the data means (e.g. names for class loaders, values of Strings). Furthermore we use the field values to look out for aggregation patterns, e.g. grouping objects by their “semantic key/value” and looking out for systematic activity.

System dumps contain that missing information and DTFJ exposes it. At least that’s my understanding. That’s the reason why I hope for someone to write a converter from system dumps/DTFJ to HPROF binary heap dumps.

Regards,
Vedran

  Message #308917 Post reply Post reply Post reply Go to top Go to top Go to top

six pack abs

Posted by: David Key on May 15, 2009 in response to Message #234346
six pack abs
six pack abs

  Message #319901 Post reply Post reply Post reply Go to top Go to top Go to top

Re: Good heap size? - Lose Fat

Posted by: Brian Benson on August 26, 2009 in response to Message #234520
Lose Fat Build Muscle

Lose Fat Thighs

Lose Back Fat

Why I Cant lose weight

Lose Belly Fat

Weight Gain Fast

Get rid of cellulite

Get rid of flabby arms

Loose Man boobs

Fast muscle building

Get rock hard abs


Detoxify Body

Fat loss 4 idiots

No Nonsense Muscle Building Review

Nclex practice test

Free NCLEX questions

Awareness Anesthesia

Affiloblueprint

WoW Horde Guide

Improve Search Engine Ranking

Technology blog

Pixma MX860 Canon

Asus EEE ET2002T

Dell Inspiron 11z

Canon Pixma mp780

The truth about six pack abs

Nclex Practice Test

Nclex Practice Test


Nclex Practice Test


Nclex Practice Test


Nclex Practice Test


Nclex Practice Test


Nclex Practice Test


Nclex Practice Test

Nclex Practice Test

Free Nclex questions

Free Nclex questions

Free Nclex questions

Free Nclex questions

Lose Back Fat

Build Muscle Lose Fat

Why I Cant Lose weight

Lose Fat thighs

Lose Fat thighs

the truth about six pack abs

Free Nclex questions

Web hosting unlimited bandwidth

Affiloblueprint review

Exit splash review

Maverick Money Makers review

Affiloblueprint review

Registry optimizer

Watch TV on my PC

Get rid of spyware

  Message #323373 Post reply Post reply Post reply Go to top Go to top Go to top

Free Nursing CEU

Posted by: Brian Benson on October 08, 2009 in response to Message #319901
Free Nursing Ceu
Free Nursing Ceu
Free Nursing Ceu
Free Nursing Ceu
Free Nursing Ceu
Free Nursing Ceu
Free Nursing Ceu
Free Nursing Ceu
Free Nursing Ceu
Free Nursing Ceu
Free Nursing Ceu
Free Nursing Ceu
Free Nursing Ceu

New content on TheServerSide.comNew content on TheServerSide.comNew content on TheServerSide.com

Dependency Injection in Java EE 6 - Part 1

Reza Rahman explores the features of the proposed JSR 299, Contexts and Dependency Injection for Java EE (CDI). When approved, it promises to be a key feature of Java EE 6. (November 2, Article)

SAML: It's Not just for Web services

SAML is an XML-based standard for exchanging authentication and authorization data between security domains. The single most important problem that SAML was created to solve is the Web browser Single Sign-On problem. Many organizations are debating whether to stay with version 1.1 or move to 2.0. This article makes observations about both options. (September 28, Article)

Programming is Also Teaching Your Team

Joe Ottinger takes a look at how people learn, and applies it to the practice of programming. He notes that understanding how people learn is an essential part of working in a programming team. (September 22, Article)

Can Java EE Deliver The Asynchronous Web?

Stephen Maryka gave us an article about the Asynchronous Web and posed a number of questions that get examined like an approach to delivering Asynchronous Web capabilities through extensions to existing Java EE technologies. (July 14, Article)

JSF Flex

JavaServer Faces Flex goal is to provide users capability in creating standard Flex components, part of flexSDK which is open sourced through MPL license, as normal JSF components. This article by Ji Hoon Kim will provide an overview of creating a simple multilingual JSF page consisting of JSF Flex tags. (June 29, Article)

The Rules of SOA - A Road to a Successful SOA Implementation

In this session Jeff explores the key characteristics of successful SOA projects. He covers some of the patterns, and anti-patterns, tool sets, and strategies that he himself learned the hard way. Last, he provides a strategy and blueprint for achieving a high likelihood of success in your SOA project. (June 23, Tech Talk)

Ari Zilka Talks About Terracotta 3.1

Ari Zilka, CTO of Terracotta, Inc., talks about the new features in Terracotta 3.1, announced during JavaOne and available now. (June 15, Tech Talk)

Enterprise Application Integration, and Spring

In this Tech Talk, Josh Long explores an integration challenge using Spring Integration and walks through the implementation, employing and expanding on the basic patterns of Enterprise Application Integration to tie together components into a function integration solution, and then demonstrates how Spring Integration helps address the integration requirements. (June 15, Tech Talk)

Google Web Toolkit: An Introduction

In this Tech Talk, David Geary teaches you: The basics of Google Web Toolkit; How to implement Ajax-enabled applications in Java; Internationalization; Hooking into the browser history mechanism; Remote procedure calls. (June 4, Tech Talk)

Just Enough Early Architecture to Guide Development

Jon Kern discusses the best architecture/technical solutions and ensure that they are repeated by all developers. By tackling the architecture up-front in a serial manner, subsequent parallel development will be much more manageable and predictable. (May 28, Tech Talk)

Productive Programmer: On the Lam from the Furniture Police

This keynote describes the frustrations of modern knowledge workers in their quest to actually get some work done, and solutions for how to guard yourself against all those distractions. Neal Ford talks about environments, coding, acceleration, automation, and avoiding repetition as ways to defeat the misguided attempts to sap your ability to produce good work. (May 26, Tech Talk)

Auto-Scaling Your Existing Web Application

Gil demonstrates how new, aggressive uses of already abundant compute capacity by common applications offer competitive value for application designers. (May 21, Tech Talk)

Automating Hibernate Mapping and Queries For Java Web Development

Chris Keene introduces WaveMaker as a new way to automate the ability to generate Hibernate classes in order to more quickly bring OR mapping into an application. (May 19, Article)

Auto-Scaling Your Existing Web Application

In this session Nati Shalom demonstrates how to take a standard Java EE web application and scale it out or down dynamically without changes to the application code. Seeing as most web applications are over-provisioned to meet infrequent peak loads, this is a dramatic change because it enables growing your application as needed, when needed, without paying for unutilized resources. (May 19, Tech Talk)

Free Book PDF Download: Mastering EJB Third Edition

Mastering EJB was one of the original and most influential EJB books in the industry. Mastering EJB III now returns with two new expert co-authors, updated for EJB 2.1 and 30% new chapters including security, integration, best practices, open source, and more.
(Book PDF Download)

Application Server Matrix

The Application Server Matrix is a detailed listing of J2EE vendors and their application server products, with information on latest version numbers, J2EE spec support and licensing, pricing, platform support, and links to product downloads and reviews.
(Application Server Comparison Matrix)

News | Blogs | Discussions | Tech talks | Patterns | Reviews | White Papers | Downloads | Articles | Media kit | About
Java Solutions
All Content Copyright ©2007 TheServerSide Privacy Policy
Site Map