次の方法で共有


ObjectContext::D isableCommit メソッド (comsvcs.h)

オブジェクトのトランザクション更新が矛盾しており、現在の状態ではコミットできないことを宣言します。

構文

HRESULT DisableCommit();

戻り値

このメソッドは、標準の戻り値E_INVALIDARG、E_OUTOFMEMORY、E_FAIL、および次の値を返すことができます。

リターン コード 説明
S_OK
メソッドは正常に完了しました。 オブジェクトのトランザクション更新は、オブジェクトが EnableCommit または SetComplete を呼び出すまでコミットできません。
E_UNEXPECTED
予期しないエラーが発生しました。 これは、あるオブジェクトが ObjectContext ポインターを別のオブジェクトに渡し、もう一方のオブジェクトがこのポインターを使用して DisableCommit を 呼び出した場合に発生する可能性があります。 ObjectContext ポインターは、最初に取得したオブジェクトのコンテキストの外部では有効ではありません。
CONTEXT_E_NOCONTEXT
現在の オブジェクトにはコンテキストが関連付けられません。 これは、COM+ CreateInstance メソッドのいずれかで作成されなかった可能性があります。

解説

DisableCommit メソッドを使用すると、ステートフル オブジェクト内のメソッド呼び出し間でトランザクションが途中でコミットされるのを防ぐことができます。 オブジェクトが DisableCommit を呼び出すと、その処理に一貫性がなく、クライアントからさらにメソッド呼び出しを受け取るまで作業を完了できないことを示します。 また、その作業を実行するために状態を維持する必要があることを示します。 これにより、COM+ がオブジェクトを非アクティブ化し、メソッド呼び出しからの戻り時にそのリソースを再利用できなくなります。 オブジェクトが DisableCommit を呼び出した場合、オブジェクトが EnableCommit または SetComplete を呼び出す前にクライアントがトランザクションをコミットしようとすると、トランザクションは中止されます。

要件

   
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー comsvcs.h

関連項目

Objectcontext