エスエムジーは2009年5月11日,Javaアプリケーション・サーバー向けのパフォーマンス監視ソフトの新版「ENdoSnipe 4.0」の出荷に先立ち,RC(Release Candidate)版のダウンロード配布を開始した。新版では,取得できる情報や診断項目の数を増やしたほか,Log4J/JMS/JRubyなど各種フレームワークを標準で監視できるようにした。製品版は6月10日に正式発表し、同日から出荷を始める予定。価格は未定だが,2008年10月に出荷した現行版(バージョン3.5)の価格は1ライセンス69万円(税別)。

 ENdoSnipeは,Javaアプリケーション・サーバーの性能を監視して,性能のボトルネックを発見/分析するソフトである。監視対象となるJavaアプリケーション・サーバー上で動作するサーバー側ソフトと,性能分析GUIフロントエンドとなるクライアント側ソフトで構成する。サーバー側では,Javaのプログラムを読み込んで実行するタイミングで,クラスを書き換えて監視用プローブを埋め込む。これによりJavaのソース・コードに変更を加えずに性能を監視できる。一方のクライアント側ソフトは,統合IDEであるEclipseのプラグインとして実装している。

 性能解析機能は,互いに独立して動作する以下の3つの機能(クライアント画面)で構成する。

 (1)「ArrowVision」は,Javaシステムの処理の流れを,シーケンス・ダイアグラムとして表示する機能である。どの処理にどれだけ時間がかかったのかが分かる。処理のメソッド名や発行SQL名,処理開始/完了時間,処理時間などをソートして一覧表示できる。

 (2)「PerformanceDoctor」は,Javaシステムの性能を低下させる原因となる処理を自動的に見つける機能。性能問題を検出するルールをしきい値として設定すると,Javaプログラム/JDBC/SQLに潜む問題を可視化できる。例えば,同一メソッドの呼び出し回数やGC発生回数/時間,同一SQL実行回数,SQL中の結合利用回数,SQL実行計画中のテーブル・フルスキャンなどを把握できる。

 (3)「BottleneckEye」は,性能面で問題が発生した部分をGUIでリアルタイムに通知する機能である。アプリケーションの構造をクラス図として「見える化」するとともに,発見したボトルネックの部分をクラス図上で点滅させる。SNMPトラップによる通知も可能である。新版では,アプリケーション中のメモリー・リークも発見できる。ヒープ(メモリー)内のオブジェクト・サイズやオブジェクト数も分かる。