Microsoft Transaction Server

出典: フリー百科事典『ウィキペディア(Wikipedia)』

Microsoft Transaction ServerMTS)は、他のアプリケーションに容易にトランザクションを実装しサポートするサービスコンポーネントである。

アーキテクチャ

MTSアーキテクチャは以下の要素から構成される。

MTS実行部の制御下で動作するCOMコンポーネントをMTSコンポーネントと呼ぶ。MTSコンポーネントは全てDLLとして開発され、1つ以上のCOMコンポーネントとして実装される。これらのコンポーネントがMTS実行部の管理下で展開され実行される。通常のCOMコンポーネントと同様、IClassFactory を実装したオブジェクトは、そのコンポーネントの新たなインスタンスを生成する Factory オブジェクトとして機能する。

MTSはFactoryラッパーオブジェクトとObjectラッパーを実際のMTSコンポーネントとそのクライアントの間に挿入する。従って、クライアントがMTSコンポーネントを呼び出すと、ラッパー(Factory と Object)が常にそれを横取りし、独自のインスタンス管理アルゴリズム Just In Time Activation (JITA) を呼び出しに注入する。そしてラッパーが実際のMTSコンポーネントを呼び出す。

さらに、コンポーネントの展開属性の情報に基づき、それらラッパーオブジェクト内でトランザクションロジックとセキュリティチェックも行われる。

MTSコンポーネントそれぞれに対応して、IObjectContext インタフェースを実装した Context オブジェクトが存在する。Context オブジェクトは、トランザクションに関する情報、セキュリティ情報、展開情報など、そのコンポーネントに固有の情報を保持する。MTSコンポーネントは IObjectContext インタフェースを通して Context オブジェクトを呼び出す。

MTSでは、クライアントからの呼び出しがコンテナに到達して初めて中間層の実際のMTSコンポーネントが生成される。コンポーネントは常に動作しているわけではないので、システムリソースを浪費しない(ただし、ラッパーとスケルトンは常に動作している)。

クライアントからの呼び出しが来ると、即座にMTSラッパープロセスがJITAというインスタンス管理アルゴリズムを起動する。実際のMTSコンポーネントは「ジャストインタイム」方式で生成され、ラッパーからの要求を処理する。そして応答をクライアントに返し、クライアントが SetComplete()/SetAbort() を呼び出すか、トランザクションが完了するか、クライアントがコンポーネントの Release() を呼び出したとき、実際のMTSコンポーネントが破壊される。つまりMTSはステートレスなコンポーネントモデルである。

サーバ上でクライアントが典型的なMTSコンポーネントのサービスを要求したとき、以下のように動作する。

  1. データベースのコネクションを確立する。
  2. コンポーネントの状態を Shared Property Manager または既存のオブジェクトかクライアントから読み取る。
  3. ビジネスロジックを実行する。
  4. コンポーネントの変化した状態を書き込み、必要ならデータベースに書き戻す。
  5. データベースのコネクションをクローズし解放する。

従って、高レイテンシのリソースを非同期リソースプールとして実装でき、その際にこのミドルウェアサーバで与えられるステートレスなJITアクティベーションを利用すべきである。


過去1時間の間にもっとも読まれた記事
社会福祉の年表 永代売 坂下麻衣 卵円孔 生田絵梨花 伊織涼子 MIYAVI フェアリーズ 山口智美 (タレント) 濱田めぐみ 新妻聖子 菊池梨沙 ジェニーハイ 朝日奈央 花田優一 ドナルド・トランプ 成田凌 上沼恵美子 平野綾 榮倉奈々
「Microsoft_Transaction_Server」のQ&A
1  PWSのインストール
2  ダウンロードが出来ません。
3  Windows認証でDBにアクセスできない
モバイル版goo wikipedia提供中!
↓↓↓下記QRコードからアクセス↓↓↓
モバイル版goo wikipedia QRコード
Wikipedia記事検索について