“REAL IT PLATFORM”を実現するNECのミドルウェア

Java EEシステム安定稼働の勘どころ 安定性を「作り込まず」,「飛躍的」に向上させる視点

この記事を読むのに必要な時間:およそ 2.5 分

MCOneによる解決

MCOneではこうした課題に対応するために,アプリケーションの配備機能を提供しています。アプリケーションサーバ製品自体でも配備機能を備えていますが,MCOneのデプロイメント管理機能はこれに加え次の機能を提供し,運用性を向上させています図1⁠。

図1 MCOneによるアプリケーション配備

図1 MCOneによるアプリケーション配備

業務単位の配備

アーカイブファイルをまとまった単位でグルーピングし,この単位での配備を可能にします。これを「業務単位のデプロイ」と呼びます。MCOneでは,アプリケーションを受注業務,発注業務といった一般的に「業務」といわれるような意味のある単位でまとめていますので,このように呼んでいます。あらかじめ配備先のアプリケーションサーバを業務単位に定義し,配備指示は業務を指定して行うことにより,配備ミスを防ぎます。

複数サーバへの一括配備

複数アプリケーションサーバへの配備指示を一括して行うことができますので,操作性を簡易化し配備ミスを防ぎます。

配備状況の表示

配備状況(配備指示日時,結果など)の確認ができますので,配備漏れなどを防ぐことができます図2⁠。

図2 配備状況の表示

図2 配備状況の表示

再現待ちに陥らないために

次に,アプリケーションの障害解析に対するアプローチを紹介します。

従来のトレースの問題点

一般的に業務アプリケーションで問題が発生した場合には,業務アプリケーションが出力したログファイルを見て原因を探すことになります。通常こうしたログは,アプリケーションからログ出力APIを使用して出力します。ログ出力APIとしては,オープンソースのLog4jなどのログ出力APIがよく使用されています。

しかしながら,このように手動でアプリケーションにAPIを埋め込んでいると,出力内容が開発者に依存し,トラブル発生時に肝心の情報が出力されていないなど,障害解析ができないといったことがよくあります。こうした場合には,アプリケーションにログ出力APIを埋め込んで,再度アプリケーションをデプロイし,障害の再現待ちを余儀なくされます。つまり,原因がわからず問題を内在したままサービスを継続せざるを得なくなります。また,本番環境では,すぐにアプリケーションの入れ替えを実施できない場合が多いでしょう。

また,Javaのアプリケーションであればアプリケーション障害発生時にスタックトレースが出力されていることがあります。しかし,スタックトレースでは十分なメソッド呼び出し履歴が出力されません図3-①⁠。また,メソッドの呼び出しパラメータがわからない図3-②⁠,そもそもアプリケーションで例外を丸め込んでいてスタックトレースが出力されない場合がある図3-③などの問題があり,スタックトレースだけに頼ることはできません。

図3 Javaスタックトレースの問題点

図3 Javaスタックトレースの問題点

MCOneによる解決

これに対して,MCOneのログ出力はAPIを手作業で埋め込む必要はなく,一様に自動埋め込みすることで課題を解決します。

アプリケーションのバイナリ(Javaのバイトコード)に対し,メソッドの呼び出し,例外のキャッチ,EJB呼び出し,SQL実行などの重要なイベント発生の前後にトレースコードを埋め込み,障害時に処理開始時から障害解析箇所までの情報(障害にいたるシーケンス)を採取できます。

また,正常時のトレース情報はメモリに出力し,障害発生時のみ情報をファイルに出力するという機構により,性能に対するオーバヘッドはほとんどありません。このため,本番環境でもトレースコードを取り除く必要がなく,そのまま使用することができます。

例外発生時のトレース情報はXML形式のファイルに出力され,これをコマンドでHTMLまたはテキスト形式に変換して障害解析を行うことができます図4⁠。

図4 出力されたトレース情報

図4 出力されたトレース情報

まとめ

人的要因によるトラブルを排除し,安定した業務システムの構築・運用を実現するためには,運用性,障害解析性,機密性,といったさまざまな観点でアプローチしていく必要があります。

MCOneは,従来「それぞれの業務システム構築プロジェクト現場で人手によって何とかしようとしていた」領域に対して,⁠システマチックに対処する」ことで,業務システムの安定稼働に貢献します。その対象は,商用Java EEアプリケーションサーバだけではなく,近年のOSS(オープンソースソフトウェア)活用のニーズを受けて,OSSのJava EEアプリケーションサーバにも拡げています。2006年9月には,JBoss Application Serverの対応を完了しました注2。

MCOneは,今後もこれらの人的要因に起因するトラブルに対するソリューションを提供し,安定したシステムの構築,運用をサポートしていきます。

問い合わせ先

日本電気⁠株⁠ 第二システムソフトウェア事業部
TEL:03-3456-5692/E-Mail:info@cced.jp.nec.com
MCOne紹介サイト
http://www.nec.co.jp/middle/DiosaGlobe/MCOne/

著者プロフィール

波多野陽治(はたのようじ)

日本電気株式会社。


法谷雅之

日本電気株式会社。