基幹運用を支えるOLTPとは? 無停止実現のCosminexus Application Server

Webアプリケーションで問題となる運用段階のチューニング。ノウハウだけでは解決困難な大規模システム問題に対し、日立は、長年培った技術OLTPをアプリケーションサーバに採用した。

» 2004年09月27日 14時05分 公開
[木田佳克,ITmedia]

 事例や開発、構築ノウハウがクローズアップされがちなJ2EE。しかし、アプリケーション開発の最後に立ちはだかるチューニングは、マニュアルに存在せず問題となる場合がある。理想的な開発を行ったとしても、実環境となるアプリケーションサーバ上では流動的なネットワークを考慮し、さまざまな稼働状況を想定しなければならない。

 いざ、アプリケーションサーバ上で開発アプリケーションを稼働させてみると、パフォーマンスに優れない、などという問題解決にはノウハウだけと思われがちだ。しかし、解析結果による予測、そして機能的な対処が実現できる。それが日立製作所の回答だ。

OLTPは基幹サービス運用に欠かせないものとなる

 注目されている「OLTP」(On-Line Transaction Processing)は、高信頼性を要する基幹サービスに重要視される技術だ。処理中断がデータ整合性不具合へとつながるシステムでは、必須ともいえる。

 日立製作所のソリューション「Cosminexus Version 6」ファミリーの新版「Cosminexus Application Server」では、このOLTPがキーワードとなっている。次に挙げる4つの機能は、日立製作所が長年培ってきたOLTP技術として、Cosminexus Application Serverに実装されているものだ。

 4つの機能は、サービスの提供元と利用者、2つの側面で制御可能な点がOLTPに相応しい優位性といえる。

1. 優先制御

2. 流動制御

3. 負荷分散

4. サービス閉塞

ネットワーク特性を考慮した制御機能をアプリサーバに実装

 一般的に、サービス利用側からのリクエストにより内部で実行されるビジネスロジックは、一連の処理を終わらせるまでは分散できないという制限が伴う。

 しかし、OLTPを実現するCosminexus Application Serverでは、CTM(Component Transaction Monitor)と呼ぶ機能をサポートし、EJBコンテナとは独立処理する形態を持つ。リクエスト要求を受け、実行前に動的な振り分けができるようになっているのだ。

 「優先制御」は、プログラミング上では予知しづらい個々のビジネスロジック(EJBコンポーネント)の実行状態に、優先度を設定するもの。

 サービス提供元からの意図的なデータ配信を確立できるよう配慮された仕掛けといえる。前述したが、いくら理想的なJavaコードでプログラミングされていても、最終的なトラフィック制御は、ネットワーク特性から実現しづらいものだ。優先制御はこれを可能とするものであり、リソースの利用度をアプリケーションサーバ側で配分することができる。設定ポリシーは単純であり、重要度の高い要求こそ優先度を上げればよい。

 「流動制御」は、優先制御と関連して別の単位「リクエスト」や「スレッド」で制御可能とするものだ。サービス利用者からの要求を制御するものである。

 予測しづらい流動的なインターネットを介すサービスであっても、基幹利用ではなおさらアプリケーションサーバの能力限界を超えてもシステムダウンが許されない。サービスの爆発的な成長にも対応し、予想以上のリクエストが発生しても重要度設定によって、最も優先するリクエストを保証する。

 「負荷分散」は、複数のアプリケーションサーバで構成する場合、リクエストキューを制御することで処理分散可能とする機能だ。

 前述のようにビジネスロジックの特性を考慮したものであり、EJBコンテナとは独立処理することで制御を可能としている。重量級な処理が一個所へ集中してしまうといった事態を避け、適所へと分散させることができる。

 「サービス閉塞」は、障害時やアプリケーションリプレースの際にメンテナンスを容易にするためのものだ。

 リクエストキューを制御することでアプリケーションの処理を仮想的に中断することができる。サービス利用者からは無停止に見えるようにスケジューラ機能が処理を行う。万が一リクエスト障害が発生しても、速やかにメンテナンス状態へと移行できることがシステムの総合的な利便性へとつながる。

 これらのいずれの制御もEJBコンテナの特性を考慮したものであり、OLTP実現に欠かせないものとなっている。

Java VMの解析を担う障害解析機能の実現

 複数のサーバで運用する場合、障害時などにログ解析が難しい点は、実際に稼働し始めて運用者が悩む問題のひとつだ。

 予め解析しやすい環境を整えておくことが、いざという時のダウンタイムゼロを実現する基盤となる。

 「Cosminexus Version 6」ファミリーの運用管理サーバソフト「Cosminexus Management Server」では、障害解析トレース機能(PRFトレース)を搭載し、この問題を解決する。

 PRFトレースは、Java VM(Virtual Machine)の解析実現を目的としており、スレットダンプ出力を始め、メモリ例外発生時のトレース、ガベージコレクションメモリの情報取得などを実現するもの。運用時で事前に障害発見をするためには、Java VMの解析こそが高信頼性実現への王道であるとし、Cosminexus Version 6の新機能ポイントとして位置づけられている。

 サービスへのリクエストセッションごとにユニークIDが振られるため、時間軸と複数のサーバをまたいで原因究明の検索が可能だ。


 今後いっそうの基幹利用が活発になるであろうJ2EE。そしてミッションクリティカルなJ2EEの実現こそがプロジェクト成功の要といえる。

 システムの根底には、Java言語による高度なプログラミングが要となることも間違いないが、システム構築ノウハウも相まってこそ高信頼性へと結びつく。OLTP技術を運用アプリケーションに組み込むことで、日立製作所は基幹利用でのダウンタイムゼロを実現する狙いだ。

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ