JavaEnterprise JavaSitraka PerformaSure: Performance Analysis for J2EE Applications

Sitraka PerformaSure: Performance Analysis for J2EE Applications

Developer.com content and product recommendations are editorially independent. We may make money when you click on links to our partners. Learn More.

The people at Sitraka have made a name for themselves in performance analysis with JProbe. If you were having performance issues with a Java application running in a single VM, JProbe was a great way to figure out where the problem was.

Of course, if the application in question was a multi-tier J2EE application, load-balanced, segmented, and distributed across ten machines, isolating performance problems with JProbe was a little tricky, to say the least. You could still watch one
subsystem, running in a single VM, and hopefully see something that didn’t look
right from a performance perspective, but this style of ‘performance analysis’
is almost as hit-or-miss as just staring at your code and trying to figure out
why it’s slow. It’s not much use to know that, say, 10 percent of the time your
application takes is in allocating string objects. What you really want is to
be able to watch your application running under load and then see which
requests are taking too long to process, and in the context of that call chain,
which method in which application on which machine seems to be causing the
problem.

The performance monitoring tools used to instrument the various VMs, although very lightweight, are designed to be used in a testing environment, and not on a live deployed application.

To address this need, Sitraka developed PerformaSure, a new profiling product designed to let you identify performance problems in context, under load, and across multiple tiers. This way, you can track a single request, from the Web server, through
the servlet or JSP container through an EJB server, perhaps into another EJB
server, and eventually off into a database somewhere. PerformaSure instruments
each tier in your test environment and collects performance statistics, and
then pieces the data together into a cohesive picture by using what they call tag
and follow
technology. They then display all this information for you in views similar to those you’d find in a single-VM performance tool like JProbe or Optimize-it, and identify hotspots. As when using a single-VM profiler, often your problem area will be immediately obvious (like when you see that one particular method in your EJB server is taking 3 seconds to complete what you thought was going to be a trivial call,)
but even if the trouble is more subtle, you can quickly examine a large number
of call chains to see what’s really happening inside your app.

You can also use tag and follow to help you improve response time for specific requests, or do more subtle performance tuning. And because the profiling takes place under load (PerformaSure is designed to work with Mercury Interactive LoadRunner for load testing) you can be more certain of how your application will run once it’s
live.

What PerformaSure Helps You to Detect

  • Discover general performance bottlenecks across a large n-tier application
  • Isolate network latency problems from code-related problems
  • Isolate database server bottlenecks from Java bottlenecks
  • Isolate hardware dependencies
  • Discover if your EJBs aren’t really being load balanced like you think they are.

Limitations

There are some limitations you should be aware of, particularly if the idea of getting this kind of information about your own EJB app has you drooling.

Supported platforms:

First, if you don’t use WebLogic, you’re out of luck. To date, the only EJB server PerformaSure supports is WebLogic 6.0 or 6.1 (WebSphere support is coming next month). Supported Web servers are: Apache 1.3.14 or later, Microsoft IIS 5.0 or later, iPlanet 4.1, or the Web servers embedded in WebLogic 6.0 or 6.1. The app itself needs to run on Windows 2000 SP 2 or later, or on Solaris 2.6, 7 or 8.

Development Time, not Deployment Time

The performance monitoring tools used to instrument the various VMs, although very lightweight, are designed to be used in a testing environment, and not on a live deployed
application. This is, of course, a sensible way to do your testing: before you
roll your product out to customers; however if you find that there is some
subtle difference between your testing environment and your live environment,
or some problem only shows up under specific kinds of load patterns, you may
have your work cut out for you in trying to replicate the failure mode in your
testing environment.

Sitraka is aware of this difference, but has (sensibly, in my opinion) focused its attention on where developers are feeling the most pain: during initial development. The fact is, most J2EE applications currently being worked on are still in the initial
development stage at this point, and have yet to be deployed anyway. Hopefully,
PerformaSure will help shorten time to market for some of these applications,
along with improving initial quality and customer acceptance, by helping
developers to identify problems in the development and initial QA phases,
rather than having to have performance inadequacies pointed out to them by
customers or by the occasional large catastrophic failure after deployment.

About the Author

Ian McFarland is the president of Neo Ventures Ltd., a software consulting company in San Francisco. Previously, he served as senior director of technology for Hollywood Stock Exchange and Java Evangelist for Symantec Internet Tools.

Get the Free Newsletter!

Subscribe to Developer Insider for top news, trends & analysis

Latest Posts

Related Stories

Sitraka Products at a Glance
In addition to PerformaSure, Sitraka has a number of other products, in two basic categories, performance tools and user interface components.
Performance Tools UI Components

JProbe

JProbe is their standard, single-VM profiling tool. It also integrates well with PerformaSure.

Deploy Director

Manages rich client deployment for J2EE applications

This was once the core of their business, back when they were known as KL Group.

JClass Desktop Views

This is the classic JClass widget library, which has been steadily improved with new
widgets over the years. JavaBeans components for use in client-side applets and applications.

JClass Server Views

This is a similar set of widgets, but designed to be rendered on the server, complete with
imagemap based HTML UI generation, and a number of other clever features. It also works
around one of the weaknesses of Java up through 1.3: until then, the AWT was limited to the
color depth of the frame buffer installed on the server. Creating graphics in millions of
colors required a really good (and expensive) video card on a server that was typically running headless. This product eliminates the dependency on a Java runtime on the client, and can be used to create UIs in GIF, JPEG, and even PDF.

JClass BWT

An older set of AWT widgets, which Sitraka is now making
available for free.

XRT PDS

Their roots are showing in this product. XRT PDS is a rich set of Motif widgets.