整合性フラグと完了フラグ
COM+ では、トランザクション オブジェクトをアクティブ化する前に、常にコンテキスト オブジェクトが作成されます。 コンテキスト オブジェクトは、作成者やトランザクション識別子などのオブジェクト関連の情報を保持します。 各コンテキスト オブジェクトには、一貫性のある フラグ と 完了フラグも含まれています。 これらのフラグを組み合わせることで、トランザクション オブジェクトの状態が決まります。
整合性フラグは、トランザクション オブジェクトが一貫性があるか一貫性がないことを示します。 オブジェクトの状態を一貫性のあるものにする具体的な詳細は、プログラマ次第です。 メソッド呼び出しでこのフラグを True に設定すると、オブジェクトは一貫性があります。 False は、オブジェクトに一貫性がないことを示します。 COM+ は、オブジェクト インスタンスを作成するときにフラグを True に設定します。 一貫性のあるオブジェクトは、トランザクションを続行する準備ができています。 オブジェクトが再メインアクティブな間、後続のメソッド呼び出しでは、一貫性のあるフラグを True から False に、またはその逆に繰り返し切り替えることができます。
完了フラグは、トランザクションの期間を決定します。 メソッド呼び出しが返されると、COM+ は完了フラグを検査します。 メソッドでこのフラグを True に設定すると、COM+ はオブジェクトを非アクティブ化し、整合性フラグをメモします。 完了フラグが False の場合、COM+ はオブジェクトを非アクティブ化せず、整合性フラグをメモしません。 COM+ は、オブジェクト インスタンスを作成するときに、完了フラグを False に設定します。
整合性フラグは、実行されるトランザクションをコミットまたは中止するための投票をキャストし、完了フラグによって投票が完了します。 COM+ は、メソッド呼び出しの戻り値で done フラグが True に設定されている場合、またはオブジェクトが非アクティブ化されたときに、整合性フラグを検査します。 オブジェクトの一貫性のあるフラグは、各メソッド呼び出し内で繰り返し変更できますが、最後の変更のみがカウントされます。
関連トピック