社会的要請に応えたオンライントランザクションシステム - (page 2)

物井秀俊(日立製作所)

2006-02-28 06:47

一貫した開発

 オンライントランザクションシステムでは、各トランザクションはプロセスとして実行される。トランザクションの負荷が増加すると、このプロセスが休みなく動作するようになったり、同時に動作するプロセスの数が多くなったりする。このため、プログラムの動作に必要なCPU、メモリ、I/Oといったシステム資源の必要量が増加、プロセスの間で共通するリソースの取り合いが激しくなる。

 特に、オンライントランザクションシステムでは、多数の端末から同じような業務を要求して実行するケースが多く、データベースなど排他処理が必要な共通リソースの取り合いが激しくなる。共通リソースの競合が激しくなると、そのリソースの割り当て待ちでレスポンスが悪化したりスループットが低下したりする。

 このようなケースでは、業務処理自体でも共通リソースを占有する処理をできるだけ短くするという努力は必要であるが、システムとして共通リソースを使用して動作する部分をできるだけ速く動作させて、各プロセスで共通リソースを占有している時間を短くする制御も必要となる。メインフレームでは、システム資源の割り当てを行うオペレーティングシステム、端末やトランザクション制御をするプログラム、データベース管理プログラムを一貫して開発しており、これらのプログラムが連携することにより、共通リソースを占有して動作しているトランザクションに優先してシステム資源を割り当てたり、さらにトランザクションの状態により必要なシステム資源を優先的に割り当てるようしている。

制御が難しいオープン系

 さらにオンライントランザクションでは、非常に短時間の処理を実現しなければならず、オンライントランザクション実行中に必要なシステム資源を割り当てながら実行すると、その時々のシステム負荷の影響で応答時間を守れなくなるケースが出てくる。上記のように各制御プログラム間で連携することで、トランザクション処理中に使用する各システム資源を事前に確保してしまうことができる。これにより、トランザクション実行中の新たなシステム資源の割り当てをなくし、その時々のシステム負荷の影響を受けず安定的なレスポンスを実現することができる。

 システムを安定的に運用するためには、上記のような負荷変動に対する機能的な備えだけではなく、トランザクション処理がシステムリソースをどのように使用しているかを明らかにして適切なチューニングができるようにする必要もある。トランザクション処理は、単にユーザープログラムが動作するだけでなく、トランザクション制御、データベース制御、さらに通信制御、また入出力に代表されるハードウェア処理が動作して、そのレスポンスを形成している。

 思い通りのレスポンスが実現できない場合、予想以上にシステムリソースに対する負荷が高い場合、どの部分でどれだけ時間がかかっているか、システムリソースがどれだけ使われているか、トランザクションの応答時間に対してどの部分でどれだけかかっているかを明らかにできないと、プログラム的な対処やシステム的な対処が的確に行えない。

 端末からどれぐらいのトランザクションが投入されてもシステム的に受け入れられるかどうかは、そのシステムの容量、たとえばCPUの速度やメモリのサイズ、ディスクの容量といったもので決定されるが、大量のトランザクションが集中したときにも安定したレスポンスを確保するには、上記のようなトランザクションの間で競合する共通リソースやシステム資源を確保している時間をできるだけ小さくするための制御は欠かすことはできない。

 メインフレームシステムでのトランザクション処理への考え方は、限られたシステム資源の中で大量のトランザクションを処理しながら、安定したレスポンスを確保するための必要なシステム資源の割り当て制御を行うところにある。近年盛んに適用されているオープン系のサーバシステムでは、色々なシステム環境でのオンライントランザクションシステムの構築ができるようになり便利になってきているが、その反面、関連するミドルソフトウェアや基盤ソフトウェアが多くなり、上記のようなトランザクション実行に即した制御が難しくなっている。このため、負荷の変動に備えた負荷分散やプロセッサの追加など全体のシステム資源を増やしてシステムの容量を増やす方向での対処がなされることが多い。

待ち行列を作らない

 続いて、オンライントランザクションシステムの信頼性について説明しよう。

 トランザクション処理の信頼性を確保するには、トランザクションが動作するときに使われるソフトウェアおよびハードウェアで発生する障害に備える必要がある。ハードウェアおよびソフトウェア自体の信頼性を高め、障害そのものが発生しないようにする努力も必要であるが、障害が発生したときの業務処理への影響を最小限にするための機能およびシステム方式を実現する備えは欠かせない。

 特に、同じ業務を多数の端末から処理要求するオンライントランザクションシステムでは、トランザクションがデータベースなどの共通リソースを使用しているケースが多く、システム運用中に一つのトランザクションで障害が発生したとき、他のトランザクションに影響する可能性が高い。

 たとえば、トラフィックが高い時間帯に障害が発生してデータベースを長時間占有してしまった場合、後続のトランザクションが次々と待たされることになり、システム全体の障害となってしまう可能性がある。オンラインシステムとしてのサービスを継続するために、異常の検知、閉塞を含む障害部位の切り離し、さらにトランザクション単位の整合性の保証を素早く行い、障害の伝播を最小限にする必要がある。障害にも、ハードウェアおよびソフトウェアの各部位で検知できる障害と検知ができず、無応答のままとなる障害を考えておく必要がある。

ZDNET Japan 記事を毎朝メールでまとめ読み(登録無料)

ZDNET Japan クイックポール

自社にとって最大のセキュリティ脅威は何ですか

NEWSLETTERS

エンタープライズ・コンピューティングの最前線を配信

ZDNET Japanは、CIOとITマネージャーを対象に、ビジネス課題の解決とITを活用した新たな価値創造を支援します。
ITビジネス全般については、CNET Japanをご覧ください。

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]