February 7, 2003 — As part of Borland Software's continuing efforts to integrate development lifecycle tools, the company has introduced Optimizeit ServerTrace, a J2EE (Java 2 Platform, Enterprise Edition) performance testing tool. An extension of Borland's Optimizeit performance solution, ServerTrace brings testing from the development phase to the predeployment phase, says Bill Pataky, director of product management at Borland's Java business unit, and is targeted towards testers, instead of developers.

ServerTrace examines the interactions among different components of a J2EE system and presents a high-level overview of where time and resources are being spent. Users can drill down to the source code level and find the code causing the performance problem.

"With ServerTrace, the test teams can deliver much higher value information," says Pataky. "They just don't report that the system is slow. They're able to show that the system is slow because of a database query, and show the queries slowing the system down."

The tool also features an automatic application quality analyzer, which studies the way programmers write J2EE code and flags misuses that are actually legal but may lead to application quality issues or performance issues later. "For example, if someone was trying to serialize a nonserialzable object, that would work, but may cause performance problems down the road," says Pataky. "ServerTrace flags these kind of inadvertent errors that most applications tend to have. And that's a unique feature."

Digital Rum, a mobile commerce solution provider, has been using ServerTrace since August 2002. Michael Mason, head of infrastructure at Digital Rum, explains that ServerTrace confirms many performance issues found by a traditional CPU profiler, but requires less effort on the part of his team. When Mason's team used ServerTrace to test one of Digital Rum's applications, they "could clearly see that certain JDBC [Java Database Connectivity] calls were adding up to cause a performance problem, by looking at a single display on ServerTrace," he says. "Using our previous CPU profiler, we had had to dig through large code traces and piece together the same information."

Mason also says that ServerTrace has a minimal affect on the tested application's performance. "Previous profiling tools have had a serious impact on the performance of the application being tested, often to the point that testing becomes meaningless or takes a prohibitive amount of time," he says. "We can run ServerTrace while an application is on our staging stack for user acceptance testing. This means we can profile application usage that is much closer to real-world traffic and find problems fast."

With ServerTrace, instead of deciphering profiler output, Mason's team can focus immediately on performance bottlenecks. "Our business is helped because we are better prepared to meet performance targets specified in our service level agreements, and can make better use of the hardware on which we run our applications, leading to reduced overheads," says Mason.

Mason notes that the tool still has some profiling overhead. "This means that when we want to do capacity testing we need to run the servers clean, without profiling switched on. This is fairly obvious though—by that stage, we've ironed out all the performance problems using ServerTrace and just want final numbers."

ServerTrace competes with Mercury Interactive's LoadRunner, ej-technologies' JProfiler, and Sitraka's PerformaSure. But ServerTrace's focus on EJB (Enterprise JavaBeans) and its ability to work with distributed applications sets it apart, says Thomas Murphy, senior program director at Meta Group. He cites its platform neutrality as another advantage.

"At this point, in its class, it is as good or better than anything out there," says Murphy about ServerTrace. "Improvement would be to expand beyond typical analysis and reporting similar to what Oracle has done with CodeCoach. This is a facility in Oracle9i JDeveloper that provides natural language feedback on source code, thus not just identifying performance issues, but how those and other coding deficiencies can be fixed."

Learn more about this topic