エスエムジー 代表取締役社長 新免 流氏

Javaシステム開発を手がけるエスエムジー(SMG)は27日、Javaシステムのパフォーマンスや品質問題を診断するツール「ENdoSnipe(エンドスナイプ)」の一般販売を開始すると発表した。これまでSIerや開発パートナー向けに提供してきた製品を、最新バージョン3.4のリリースに伴って、一般向けに広く販売するもの。発表にあたり、同社で代表取締役社長を務める新免流氏は、「当社が2004年から提供しているJavaシステムのトラブルシューティングサービスのノウハウをパッケージ化した。トラブルシュータが行っている調査手順を自動化することで、専門知識がないエンジニアでも、Javaシステムの問題点を診断し、改善策を講じることができる」とアピールした。

ENdoSnipeは、システムの性能や障害のログ情報を取得するエージェント「Javelin(Java Extensible Logging Infrastructure)」と、クライアントサイドでログ情報を表示・分析する「PerformanceDoctor」、「BottleneckEye」、「ArrowVision」という3つの機能(Eclipseプラグイン)から構成される。Javelinは、ログを取得する際に、アプリケーションのソースコードの修正やビルドを行う必要がないという特徴があり、ログ取得にともなうパフォーマンス低下も数パーセントという。

ログ情報を表示・分析するクラアントの3機能のうち、PerformanceDoctorは、システムのボトルネックとなる危険性が高い処理をリストとして一覧表示する機能。検出にあたっては、メソッドの呼び出し回数や、スレッドのCPU使用率、スレッドが待機/ブロックされた回数や時間、ガベージコレクションの実行回数・停止時間などをルールとして設定しておき、閾値を超えたものを列挙する仕組み。

ENdoSnipeのPerformanceDoctor機能の画面。問題個所について、クラスやメソッドを特定してリスト化

BottleneckEye機能の画面。運用中のシステムの構造を自動的に読み取り、クラス図として表示

このルールには、Javaアプリケーションだけでなく、テーブルのフルスキャンの回数や、1クエリ内でのテーブルの結合数といった、データベース側の問題点を検出するルールも設定できるという。一覧表示の際には、「テーブルのフルスキャンが発生している可能性がある」といった理由にくわえ、該当するクラス、メソッドもあわせて表示する。

また、BottleneckEyeは、システムの構造を自動的にクラス図として表示する機能。クラス、メソッドのほか、平均応答時間、最大応答時間を表示し、ボトルネックになる可能性のある個所については、赤字やブリンク表示で警告する。取得したログの統計からグラフを生成し、運用中のアプリケーションをリアルタイムに監視することも可能。メモリリークの検出や、排他制御のロック検出にも対応している。

ArrowVision機能の画面。システムの処理の流れを自動的にシーケンスダイアグラムとして表示

ボトルネックになりやすいガベージコレクションについても、実行回数・停止時間をグラフで確認できる

3つ目のArrowVisionは、システムの処理の流れを自動的にシーケンスダイアグラムとして表示する機能。ネットワークやデータベースの内部処理を含めて1つのシーケンス図として表示するため、システム全体を俯瞰した問題の特定が可能という。

発表では、同社が実際に手がけたものとして、必要のないSQLが大量に発行されていたWebアプリケーションの事例が紹介された。この例では、当初、1つの画面へのアクセス時に751回のSQLが実行されており、そのうちの698回が必要のないセッション情報の検索・更新に関するものだったという。

対応に当たったシステムズコンサルティングディヴィジョンの山崎政憲氏は、「Webサイトの性能評価の段階では、2秒という目標値をクリアしていたため発見できなかった。しかし、さらに調査を進めると、複数のWebサイトの構築を複数のベンダーが請け負っていることが分かり、あるWebサイトについては、インデックスを作成していないという深刻な問題点があることが判明した」と説明。そのうえで、運用中のシステムを診断することで、システム設計の不備やベンダー管理の問題点の発見にまでつなげられることを強調し、「開発ベンダーが納品前にパフォーマンス・テストを行ったり、ユーザー企業が普段気づかないシステムのボトルネックを発見するのに有効だ」とアピールした。

価格は、サーバ1筐体当たり年間69万円(年間保守料15%込み)。あわせて、導入サービス(40万円から)、診断サービス(80万円から)、性能改善サービス(160万円から)、モニタニングサービス(月10万円から)、トレーニング(初級6万円から、上級15万円から)も提供する。販売目標としては、初年度に年間300ライセンス、2010年までに累積1000ライセンスとしている。