問題タブ [transactionscope]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
2117 参照

tsql - 内部トランザクション スコープ エラー:「基になるトランザクション マネージャーとの通信に失敗しました」

これを正しく行っているかどうかはわかりません。2つの接続を開いているからですか?エラーに関係なく、それらを閉じています。内部トランザクション スコープをいくつか入れて、2 つ目のトランザクション スコープを に設定してみましたRequiresNew。2 つの方法は互いに独立していますが、一方が失敗した場合は両方ともロールバックする必要があります。接続を作成して閉じる方法を変更する必要があるかもしれません。何かご意見は?ここに私がやっていることのいくつかのサンプルコードがあります:

0 投票する
6 に答える
20456 参照

nhibernate - TransactionScopeでNHibernate

NHibernateでのTransactionScopeの使用の概要を教えてもらえますか?セッション/IEnlistmentNotificationなどで何か特別なことをする必要がありますか?これを機能させるには?気になる落とし穴はありますか?たとえば、休止状態のトランザクションをすべて置き換えることはできますか?

これとともに?:

0 投票する
1 に答える
1093 参照

nhibernate - RhinoCommonsUnitOfWorkを使用した統合テスト用のネストされたトランザクションスコープ

各テストをトランザクションでラップする統合テストクラスを設定しようとしています。このようにして、各テストの前にDBをリセットする代わりに、各テストの後にトランザクションをロールバックできます。

また、統合テスト自体でトランザクションを使用できるようにしたいと思います。

プロジェクトにはNHibernateとRhinoCommonsUnitOfWorkを使用しています。テストにはMSTestを使用しています。

私はこのようなものが欲しい:

NHibernate、Rhino Commons、MSTestを使用したのはこれが初めてです。ネストされたRhinoCommonsを使用したセッションの動作がわかりませんUnitOfWork。私がここに持っているのは、統合テストからの変更をロールバックしません。

TransactionScopefromを使用してみましたが、 sが終了System.Transactionsすると次のエラーが発生します。UnitOfWork

System.InvalidOperationException:トランザクションの進行中は切断を呼び出すことができません。

だからここに私の質問があります:
Rhino CommonsのUnitOfWorkでこの動作を取得する方法はありますか?そうでない場合は、各テストの前にデータベースをリセットする必要がありますか、それともUnitOfWorkでうまく機能するトランザクションをネストする別の方法がありますか?

ありがとうございました。

0 投票する
2 に答える
15004 参照

.net - TransactionScope とマルチスレッド

マルチスレッドを扱っているときに、TransactionScope クラスを正しい方法でどのように使用するのか疑問に思っていました。

メイン スレッドで新しいスコープを作成し、いくつかのワーカー スレッドを生成して、これらをメイン スコープに参加させます。たとえば、スコープが完了しない場合、各ワーカーでロールバックが呼び出されるようにします。

内部で ThreadStaticAttribute を使用して TransactionScope について何かを読んだため、上記が不可能/非常に困難になりました-誰かがどちらの方法でも確認できますか? コードを同期方式で実行すると、ロールバックが機能します。つまり、内部トランザクションはメイン トランザクションに参加できますが、スレッド化された実行に切り替えた場合はできません。

0 投票する
2 に答える
19877 参照

sql-server-2008 - TransactionScope と分離レベル

TransactionScope の使用に問題があります。TransactionScope は、データ アクセス レイヤー全体でトランザクションを使用するための非常に優れた柔軟性を提供します。このようにして、暗黙的または明示的なトランザクションを使用できます。ADO.NET トランザクションで再びパフォーマンスが向上しますが、現時点ではこれは大きな問題ではありません。ただし、ロックに問題があります。以下のコード例では、分離レベルが ReadCommitted に設定されていますが、テーブル全体がロックされているため、メイン トランザクション (Main メソッド内) がコミットされるまで、テーブル testTable に対して他のクライアントから Select SQL ステートメントを作成することはできません。また、すべてのメソッドで 1 つの接続のみを使用しようとしましたが、動作は同じでした。DBMS は SQL Server 2008 です。何かわからないことはありますか?

よろしく アントン・カルシック

このサンプル コードを参照してください。

0 投票する
2 に答える
6077 参照

linq - TransactionScope、linq、および奇妙なトランザクション マネージャーの問題 (HRESULT: 0x8004D024)

データベースにほとんど変更を加えないサービスレベルのメソッドがあり、トランザクション制御を使用したいと考えています。このようなメソッドは、次のことを実行できます。 - LINQ SubmitChanges() 機能 - StoredProcedures の呼び出し

コンポーネントのユーザーは、このような基本操作のセットをより大きなものに組み合わせることができます。

素晴らしいクラス TransactinScope があり、それを使用しようとしていることがわかります。

私の仮定は、外側のレイヤーでは、別のレベルのトランザクション スコープを追加できるというものでした。代わりに、次のエラーが発生しています。

トランザクション マネージャは、リモート/ネットワーク トランザクションのサポートを無効にしました。(HRESULT からの例外: 0x8004D024)

MS SQL 2005 と Microsoft 開発サーバーに同じ (Vista Ultimate) マシンを使用しています。単体テストから、すべて正常に動作します。TransactionScope がコメントしたときも同じです。

DTC ( http://support.microsoft.com/kb/899191 ) のセキュリティを試してみましたが、すべての受信および送信トランザクションを受け入れるように設定すると、次のエラー メッセージが表示されます。

COM コンポーネントへの呼び出しからエラー HRESULT E_FAIL が返されました。

デバッグ中に、SubmitChanges で、Linq Entity Context に Property Transaction IS NULL(!!) があり、System.Transactions.Transaction.Current にトランザクションが開いていることがわかりました。

0 投票する
2 に答える
4914 参照

c# - HRESULT: TransactionScope を使用した 0x8004D00E - C#

SQL Server 2000 に接続している Windows Server 2003 Standard Edition SP1 マシンで C# WinForms アプリケーションを実行しようとしたときに、次のエラーを受け取りました。WinForms アプリのデータを変換し、変換したものを SQL Server 2005 アプリケーションに挿入しました。SSPIを使用して各データベースに接続しています。

コードは TransactionScope ブロック内に含まれていました。

エラー メッセージ:

例外: トランザクションは既に暗黙的または明示的にコミットまたは中止されています。

内部例外: トランザクションは既に暗黙的または明示的にコミットまたは中止されています (HRESULT からの例外: 0x8004D00E)

この問題の原因を知っている人はいますか?

0 投票する
1 に答える
10384 参照

c# - TransactionScopeを理解しようとしています

System.Transactionsの詳細を学ぶことができるように、簡単なダミーアプリを作成しようとしています。このアプリは、2つの異なるSQLExpressDBと相互作用します。コンポーネントサービスでトランザクション統計を取得すると、2番目の接続が開かれたときにouterScopeでトランザクションが開始されていることがわかります。failOuterがtrueの場合、トランザクションは中止されますが、例外はスローされません。failInnerがtrueの場合、TransactionAbortedExceptionがスローされます。

MSDNから:

アプリケーションがトランザクションで実行したいすべての作業を完了したら、Completeメソッドを1回だけ呼び出して、トランザクションをコミットできることをトランザクションマネージャーに通知する必要があります。usingブロックの最後のステートメントとしてCompleteの呼び出しを行うことは非常に良い習慣です。

このメソッドを呼び出さないと、トランザクションマネージャーはこれをシステム障害、またはトランザクションのスコープ内でスローされた例外と同等であると解釈するため、トランザクションを中止します。

スコープがトランザクションを作成し、トランザクションが中止されると、TransactionAbortedExceptionがスローされます。

これに基づいて、failOuterをtrueに設定してアプリを実行するたびに、トランザクション統計に中止されたトランザクションが表示されるため、outerScopeがTransactionAbortedExceptionをスローすることを期待します。トランザクションが中止されても例外はスローされないため、私のメソッドはtrueを返します。内部トランザクションを中止しない限り、期待どおりに動作します。任意の説明をいただければ幸いです。

0 投票する
3 に答える
3778 参照

c# - TransactionScopeOption.RequiresNew での TransactionScope タイムアウトの奇妙さ

ここで非常に奇妙なことが起こっています。

デバッグしていたレガシー コードの周りにトランザクション スコープを追加して、行っていたいじりがコミットされないようにしました。

これは2回機能し、次のように述べています。

動作/非動作間でコードの変更や再構築を行う必要はありません (文字通り 3 つの F5 が連続して [Web アプリ])。これは、削除 DB サーバーに接続するローカル コードでした。

このため、別のプロジェクトの完全に別のコードがタイムアウトになります。このコードから transactionScopes を削除すると正常に動作しますが、それらを配置するとタイムアウトします。ローカルの SQL サーバーとリモートの SQL サーバーを試しましたが、どちらも transactionScope 内でタイムアウトしました。

一体何が起こっているのですか?

編集:TransactionScopesを次から変更することがわかりました:

問題を防ぎます:s

これは何を意味するのでしょうか?

0 投票する
7 に答える
43652 参照

c# - C#でTransactionScopeを使用するにはどうすればよいですか?

を使用しようとしていますTransactionScopeが、以下の例外が発生し続けます。
重要な場合、アプリはデータベースとは別のマシンで実行されています。SQLServer2005を使用しています。

分散トランザクションマネージャー(MSDTC)のネットワークアクセスが無効になっています。コンポーネントサービス管理ツールを使用して、MSDTCのセキュリティ構成でネットワークアクセスに対してDTCを有効にしてください。

編集

フィードバックに基づいていくつか変更を加えました。今、私はこのエラーを受け取っています:

COMコンポーネントの呼び出しからエラーHRESULTE_FAILが返されました。」
基になるトランザクションマネージャとの通信に失敗しました。」

解決策 受け入れられた答えは、私が得ていた最初の問題を修正したと思います。2番目のエラーは、EntityFrameworkに固有のようです。別の質問を投稿します。

クライアントのプロパティは次のとおりです。
クライアントhttp://www.portnine.com/data/images/Misc/client.jpg

サーバーのプロパティは次のとおりです。
サーバーhttp://www.portnine.com/data/images/Misc/server.jpg