問題タブ [transaction-isolation]
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.
spring - カスタム分離レベル用に eclipselink jpa 方言を構成する方法
Spring 3.2.1 と EclipseLink 2.4 と JPA 2.0 を使用しています
デフォルトの分離レベル以外を使用すると、エラーが発生します。
EclipseLinkJpaDialect はクラスを拡張する必要がありますか?
どのように?
c# - SQL 接続分離レベルの保持
私は2つの部分からなる小さなアプリケーションを持っています:
- データベースに接続して構成データを取得する構成部分。
- 構成を使用してデータをデータベースにインポートする Data Importer パーツ。
Data Importer は、トランザクションを使用して複数のスレッドで実行されています。IsolationLevel.Snapshot
設定 SQL コマンドはトランザクションを使用しません。
構成ウィンドウが開いているときに、データ インポーターを同時に実行することはできません。
私の問題は次のように発生します。
1.アプリケーションを開き、構成を確認します。(構成ウィンドウに入って、すべてをスポット チェックします)。2.データのインポートを実行します。3.設定ウィンドウを再度開きます。
インポート後に構成ウィンドウを再度開くと、DataReader からエラーが表示されますが、Snapshot isolation transaction failed accessing database...
この DataReader は、トランザクションまたは IsolationLevel がまったく設定されていない SqlConnection から作成されます。
アプリケーションを再起動すると、エラーなしで構成ウィンドウを再度開くことができます。
.Net または SQLServer は IsolationLevel を保持していますか?
すべてに対して新しいトランザクションを作成せずに、設定後に IsolationLevel を変更する方法はありますか?
sql - postgresql トリガー: 自動コミットを無効にして分離レベルを設定
データベース INSTEAD OF INSERT ON テーブルにトリガーを作成し、何らかの操作を行ってから、関連する別のテーブルにデータを挿入します。自動コミットを無効にし、トリガー内で別の分離レベルを設定する必要があります。どうすればよいですか?
sql - REPEATABLE_READ 分離は非範囲クエリの挿入を防ぎますか?
次の SQL 疑似コードがあるとします。
REPEATABLE_READ 分離は、同時接続Users[id=5]
がクエリと挿入の間に挿入されるのを防ぐために保証されていますSERIALIZABLE
か、それとも分離を使用する必要がありますか?
注:可能であれば、データベースに依存しないソリューションを探しています。そうでない場合は、業界の何らかのコンセンサスに反するように、複数のデータベースから経験的な証拠を提供してください。
UPDATE : 元の質問には、範囲ロックを利用した誤ったクエリが含まれていました。この質問の目的は、範囲ロックを必要としないクエリに焦点を当てることであるため、質問を更新しました。
sql-server - 特定のユーザーのSQLサーバーへのアクセスを一時的に拒否する
ETL プロセスでデータをロードするデータ ウェアハウス環境であるデータベースがあります。
ETL プロセス中に、特定のロールのクエリに対してデータベースを使用できないようにしたいと考えています。
可能な解決策は何ですか?
java - spring トランザクション分離 SERIALIZABLE が機能しない
Main.java のコード:
UserManagerImpl.java のコード:
UserDAOImpl.java のコード:
spring.xml のコード:
上記のメインクラスを実行すると、理論的にはスレッド 1 が最初に開始され、テーブルをロックする必要がありますUSER
(なぜなら)。スレッド 2 が実行されているときは、テーブルからテーブルを読み取らずにテーブルからisolation = Isolation.SERIALIZABLE
ロックが解放されるまで待機する必要がありますが、実行するとUSER
このコードは、最初のトランザクションが完了するのを待たずにテーブルと印刷を読み取っています。USER
Isolation だと思っていてもテーブルロックが効かないのはなぜSERIALIZABLE
???
multithreading - 分離と原子性を備えた MongoDB の複数の更新
場合によっては、MongoDB でアトミックかつ分離された複数の更新操作を実行して、他のプロセスまたはスレッドが処理中にデータを取得しないようにする必要があります。原子性と分離がドキュメント レベルでのみサポートされており、ロックも db レベルで維持されていることを認識しています。上記のケースに関して、次のクエリがあります。
- 「$isolated」はクラスターでは機能せず、さらに findAndModify() は単一のドキュメントで機能するため、このような複数の更新をバッチで個別に実行できる方法はありますか?
- 上記のケースを実現するために同時実行制御を行うにはどうすればよいですか?
- ここで 2 フェーズ コミットを使用できますか?トランザクションを維持することによって、それは分離された方法で実行されますか?
- 調査中に、複数バージョンの同時実行制御に MongoMVCC を見つけました。使用したことがある場合は、上記のユース ケースに関する経験を共有してください。
entity-framework - アトミックな「取得または作成」シナリオで選択するトランザクション分離レベル
1 つの Datarow のみが作成されることを保証するには、どの Transaction IsolationLevel が最適か。SQL Server 2012 と EntityFramework 6 が使用されていると仮定します。
c# - EF4 での SNAPSHOT 分離による SaveChanges
INSERT/UPDATE ステートメントはすべて、EF4 の SaveChanges を使用して READ UNCOMITTED 分離レベルで実行されていることがわかりました。
UnitOfWork クラスでは、これは変更 (挿入/更新) をコミットするコードです。
Entity Framework 4 を使用してコミットされたすべての INSERTS および UPDATES は、SNAPSHOT 分離レベルでコミットされることを望みます。
SaveChanges() を Scope で囲んでみましたが、うまくいかないようです (SQL 側ではまったく挿入されません)。
私たちは何を間違っていますか?