トランザクション

記事数:(2)

IT活用

OTM:これからの基幹システム

複数の機械で動く複雑な仕組を扱う場合、それぞれの機械で動く部品同士がうまく連携する必要があります。この連携を助けるのが、仲立ち役となる部品、つまり「間に入る部品」です。間に入る部品の一つに、「もの同士のやり取りを仲立ちする部品」があります。これは、それぞれの部品が互いに必要な情報をやり取りするのを助ける役割を担います。例えば、ある部品が別の部品に「これをください」と要求すると、この仲立ち役が要求を適切な部品に伝え、その返事を要求元に返すといった具合です。しかし、複雑な仕組では、単に情報をやり取りするだけでなく、一連のやり取りをひとまとまりとして扱う必要が生じます。例えば、お金のやり取りで、引き落としと振り込みという二つの動作を別々に扱うと、途中で問題が起きた時に片方だけ完了してしまい、帳尻が合わなくなる恐れがあります。これを防ぐために、一連の動作を「全て成功するか、全て失敗するか」のどちらかにする必要があります。これが「取引のまとめ処理」です。「もの同士のやり取りを仲立ちする部品」に、この「取引のまとめ処理」の機能を付け加えたものが「もの同士の取引を監視する部品」です。これは、それぞれの部品からの要求を監視し、取引のまとめ処理が正しく行われるように管理します。従来の「もの同士のやり取りを仲立ちする部品」は、取引のまとめ処理を十分に考慮していませんでした。そのため、複雑な仕組で使うには限界がありました。「もの同士の取引を監視する部品」は、この点を改良し、より確実で、より多くの機械に対応できるように進化したものです。これにより、大規模で複雑な仕組でも、情報のやり取りを安全かつ確実に管理できるようになりました。
IT活用

トランザクション:情報処理の基礎単位

計算機システムで様々な処理を行うには、処理を適切な大きさに区切り、管理することが重要です。この処理のまとまりのことを「トランザクション」と言います。トランザクションは、一連の情報処理をひとまとめにしたものです。例えば、データベースの情報を読み書きする操作を一つのトランザクションとして扱うことができます。それぞれの処理を独立したものとして扱うことで、システム全体の整合性を維持し、無駄なく運用することができます。複数の処理をまとめて一つのトランザクションとして扱うことには、大きな利点があります。まず、データの整合性を保つことができます。例えば、銀行口座からお金を引き出して別の口座に振り込む場合、引き出しと振り込みは別々の処理ですが、一つのトランザクションとして扱うことで、どちらか一方だけが実行されることを防ぎ、データの矛盾を防ぎます。仮に、引き出し処理が成功したものの、通信エラーで振り込み処理が失敗した場合、トランザクション全体をなかったことにして、元の状態に戻すことができます。これにより、データの信頼性を高く保つことができます。また、エラー発生時の処理を簡単にすることもできます。トランザクションを構成する処理の一部でエラーが発生した場合、トランザクション全体を巻き戻すことで、エラー発生前の状態にシステムを戻すことができます。個々の処理のエラー処理を複雑に組み合わせる必要がなく、システムの復旧を容易にします。さらに、トランザクションはシステムの並列処理能力を高める役割も担います。複数のトランザクションを並行して実行することで、システム全体の処理能力を向上させることができます。ただし、複数のトランザクションが同じデータにアクセスする場合、データの整合性を保つために適切な制御が必要です。例えば、あるトランザクションがデータの更新を行っている最中に、別のトランザクションが同じデータを読み取ろうとした場合、古いデータを読み取ってしまう可能性があります。このような問題を防ぐために、トランザクションの同時実行制御を行う必要があります。