PR

 「トランザクション」という単語は、取引の発生を意味するほか、データ整合性(ACID属性)をとる単位として使われる。いずれにせよ、人とコンピュータが進めていく処理を構成する単位と思えば良い。

 Webオンラインシステムが主流の現在における「トランザクション」は、データベースの整合性を取ることを指すことが多い。この場合ITアーキテクトには、「どこまでの処理を取り消すことができるか」を意識して設計することが求められる。

セッション情報でトランザクションを管理する

 入力が1画面で完結せず複数画面に渡るデータを、一括でデータベースに書き込む処理もある。この場合、複数画面の流れのまとまりを管理する必要がある。これをセッションと呼ぶ。セッションの管理の仕方には、前画面までの入力データをステートフルセッションBeanなどに保持しておくと同時に、クッキーやURLなどでセッション識別子を埋め込み、画面が遷移した後も同一セッションであることが分かるようにする。そして、最後の画面のトランザクションで、保持しておいた入力データもまとめてデータベースに書き込む。アプリケーションサーバーを負荷分散していて、セッション情報をサーバー上に保持する場合は、同一セッションを同一サーバーに振り分ける仕組みをロードバランサーで実現する。

 このように、Webオンラインシステムでは、セッション情報を意識しなければならないことが多い。多重ログインや多重送信を避ける仕組みも、セッション情報をうまく活用することでチェックする。

これは、マルチウィンドウ環境で、会話や送信権という概念を持たないHTTPでデータをやり取りするWebオンラインシステムならではのやり方だ。セッション制御はもちろん、送信権制御やメッセージ制御までトランザクション処理の仕組みが整っていたメインフレームでは、必要なかったことだ。