このトピックでは、BAM インターセプタを使用する際に発生する可能性がある、以下の一般的な問題について説明します。
- 分散トランザクションに関連した SQL 例外
完了した分散トランザクションまたはトランザクション記述子に関連した SQL 例外が返される
BAM Windows Communication Framework (WCF) インターセプタを実行すると、次のいずれかの例外が表示される場合があります。
分散トランザクションが完了しました。 このセッションを新規トランザクションまたは NULL トランザクションのいずれかに参加させます。
新しい要求は、有効なトランザクション記述子を含んでいる必要があるため、この要求を開始できません。
この問題をトラブルシューティングする方法としては、以下が推奨されます。
BAM トレースを有効にします。 このトレースでは、エラーの根本原因を含むすべての関連メッセージが対象となります。 BAM トレースの詳細については、「BAM でトレースを有効にする方法」を参照してください。
この分散トランザクション コーディネータ (DTC) 例外が表示される場合は、完全に同一なシナリオをトランザクションなしで返すことを試みます。
SQL Server Profiler を使用して、トランザクションが中断する原因となるエラーをトレースで検索します。
WCF インターセプタを使用すると、「インターセプタ構成ポーリング間隔 '0' を '5' 秒以上にする必要があります」というエラーが返される
このエラーは、アプリケーション構成ファイルでインターセプタ構成ポーリング間隔の値を明示的に指定しなかった場合、または有効な下限値である 5 秒に満たない値を指定した場合に発生します。
この問題を解決するには、次のように PollingIntervalSec に有効な値を指定します。
<BamEndpointBehaviorExtension ConnectionString="Initial Catalog=BamPrimaryImport;Data Source=MyMachine;Integrated Security=SSPI;" PollingIntervalSec="1500" />