コスモシステムは3日、Javaアプリケーションの障害解析支援ソフトウェア「C'cat for Java!(シーキャット・フォー・ジャバ!)」の国内外販売を開始した。C'cat for Java!は本番環境においてJavaアプリケーションの障害情報を取得し、障害の発生原因を迅速に解析することができるソフトウェア。

コスモシステム ITソリューション事業本部 iTS事業部 システムアナリスト 部長 後藤実果氏

同社ITソリューション事業本部iTS事業部システムアナリスト部長の後藤実果氏は、現状多くの現場で行われているスタックトレースとログ解析に頼った障害解析方法について次のような問題点を指摘する。

  • スタックトレースではデータの流れが分からない
  • 大量のログ出力はシステムに大きな負荷がかかる
  • 大量のログは煩雑で解読に時間がかかりすぎる
  • 障害の再現が困難な場合、再現できるまで不安定な状態を維持することになる
  • 原因の迅速な特定のためには高いスキルが必要

このため、障害の修正よりも問題の切り分けや再現に多くの時間とコストを割くことになる。特に本番環境では障害時の情報が不足しがちなため、情報の豊富な開発時に比べて余計に原因究明が困難となる。

C'cat for Java!では、本番運用環境で障害が発生した場合に原因究明に必要な情報を自動で収集し、ピンポイントで可視化することができる。これによって障害解析時間の大幅な削減が可能となり、MTTRを短縮できる。また、障害情報の可視化によって特定の人材に依存する状況を予防し、誰でも対策にあたれるようになる。障害情報は自動で記録されるため、エンドユーザからの報告のない障害でも適宜把握することが可能で、気付かないうちにビジネスチャンスを逃す危険性がなくなる。

C'cat for Java!の最大の特徴は、通常の運用ではオーバーヘッドが発生せず、システムにほとんど影響を与えない点にあるという。同製品は通常監視型のアプリケーションではなく、障害が発生した場合にのみ、その情報を収集するために動作する。具体的には、アプリケーションがエラーや例外をスローした場合に、そのときのオブジェクトの状態をダンプする。したがって障害発生時のみオーバーヘッドが増加するが、その他の状況では通常の運用と全く変わることはない。

また、適用の際にアプリケーションの変更は一切必要ないという。すなわち、既存のアプリケーションを全く書き換えることなくC'cat for Java!によって障害の監視を行うことができる。ここでは「バイトコードインスツルメンテーション」という技術を利用しているという。バイトコードインスツルメンテーションとは、バイトコードを一切変更することなく情報を取得するための技術で、Javaプラットフォーム標準としてはJ2SE 1.4以前から利用されているJVMPI(Java Virtual Machine Profiler Interface)や、JSR 163として標準化されJava SE 5以降からサポートされているJVMTI(Java Virtual Machine Tool Interface)などがある。C'cat for Java!ではこの技術によって、障害発生時にイベントドリブン形式で外部からバイトコード情報の収集を行う。したがってアプリケーション本体に影響を与えることはない。

その他、ツール自体が利用するメモリは数メガ程度と軽量であり、インストールもものの数分で可能だという話である。設定ファイルは常に最新の状態を適用できるようになっているので、設定変更時にも再起動の必要はない。ダンプされたデータは暗号化して管理されるため、セキュリティ上のリスクも小さい。特定のJ2EEサーバやフレームワークに依存することもなく、JVM上で稼働する全てのJavaアプリケーションに適用することが可能となっている。

C'cat for Java!は大きく分けて「障害情報取得ツール」と「障害分析支援ツール」から構成される。前述の障害監視やデータのダンプは障害情報取得ツールによって提供される機能である。これはアプリケーションサーバに対して適用する。一方、障害分析支援ツールは保守用PCなどで仕様することを想定したGUIベースのアプリケーションで、障害発生時にダンプされたデータを解析してビジュアルに表示する。これによってあまりプログラミングに関する知識が無い場合でも容易に障害の原因を突き止めることが可能だという。

障害分析支援ツールによるダンプデータの解析例

コスモシステム ITソリューション事業本部 iTS事業部 事業部長 水野貴之氏

障害情報取得ツールはLinux、Windows、UNIX(Solaris/HP-UX/AIX)の各OSをサポートしており、障害分析支援ツールはLinuxおよびWindowsをサポートしている。両者とも、JSR 1.4.xおよびJRE 1.5.x上で動作させることが可能。

販売形態はレンタル方式をとっており、標準価格は月額180,000円/1ライセンス(サーバ1筐体)となる。同社ITソリュ-ション事業本部iTS事業部事業部長の水野貴之氏によれば、C'cat for Java!の今期販売目標は新規ライセンス本数にして750本、来期は新規ライセンス本数で2750本の販売を目標として掲げているという。最終的には、5年後に国内Java開発市場の約1%となる68億円の売上げを目指す。

Javaアプリケーション障害解析支援ソフトウェア「C'cat for Java!」