問題タブ [isolation-level]
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.
java - JPA および MySQL トランザクション分離レベル
MySQL データベースにバッチ挿入を行うネイティブ クエリがあります。
このクエリはデッドロックを引き起こします。 から読み取っているときt2
にinsert .. select
、別のプロセスが に行を挿入しようとしt2
ます。
t2
実行時の読み取りの一貫性は気にせず、トランザクション分離レベルをREAD_UNCOMMITTEDinsert .. select
に設定したいと考えています。
JPAで設定するにはどうすればよいですか?
アップデート
したがって、この場合、最も単純なオプションのように思われたため、通常のSQL接続を作成することになりました。みんな、ありがとう!
postgresql - PostreSQLでのINSERTとトランザクションのシリアル化
質問があります。トランザクション分離レベルはシリアル化可能に設定されています。1人のユーザーがトランザクションを開き、「table1」のデータをINSERTまたはUPDATEしてから、別のユーザーがトランザクションを開いて同じテーブルにデータを挿入しようとした場合、2番目のユーザーは最初のユーザーがトランザクションをコミットするまで待つ必要がありますか?
sql-server-2005 - READ_COMMITTED_SNAPSHOT を使用してもアプリケーションは安全ですか?
SQL Server 2005 データベースに対して COM データ アクセス レイヤーを使用する大規模な Web アプリケーションがあります。デフォルトでは、分離レベルは READ_COMMITTED です。今、私は READ_COMMITTED_SNAPSHOT 分離レベルがどのように機能するかを理解しており、MSDN を読むと透過的に有効にできると書かれています。しかし、私はまだ懐疑的です。:) READ_COMMITTED から READ_COMMITTED_SNAPSHOT に変更した場合、実装上の方法で、アプリケーションが壊れないことが保証されていますか (アプリケーションがすべてを本で行うと想定しないでください)。COM レイヤーに追加の例外はスローされませんか? トランザクションのセマンティクスは同じですか?
PS。実装方法とは、ロックの代わりに行のバージョン管理を使用するだけで、READ_COMMITTED_SNAPSHOT 分離レベルが意図的に READ_COMMITTED とまったく同じように機能するように実装されたということですか?
この分離モードに切り替えた洞察やご自身の経験に感謝します。
windows-vista - CreateProcessAsUser を使用してサービスからアプリを実行する
私はまだWindowsサービスから呼び出すアプリを実行しようとしています。Scott Allen が説明した方法を使用しようとしました。できます。それでも、アプリを画面に表示して操作することはできません。助けてください。
資格情報を使用してサービスを実行するように指示しても、デスクトップにアプリが表示されません。現在ログインしているユーザーのデスクトップ トークンを取得し、そのデスクトップでアプリを実行する方法を教えてください。
windows-7 - 管理者としてサイレントに何かを実行することは可能ですか?
VistaおよびWindows7でUACをだます方法は?管理者権限だけでなく、特に管理者として実行するように指示する必要があるものを実行するにはどうすればよいですか。指定された管理者クレデンシャルでプロセスを開始しようとしましたが、win32関数CreateProcessAsUserを使用しようとしましたが、手動で「管理者として実行」と指示しない限り、完全な管理者権限で実行されません。どのように。いったいどうやって、あのばかげたUACダイアログなしで、それを静かに実行すると思いますか?
sql-server - 別のトランザクションのトランザクション分離レベルが競合しないフィルターでシリアライズ可能である場合に、TSQL ステートメント ブロックを挿入するのはなぜですか?
シリアライズ可能なトランザクション分離レベルは、他のトランザクションの選択ステートメントと競合するトランザクションのテーブルへの挿入をブロックすることで、ファントム読み取りの問題を回避します。例で理解しようとしていますが、選択ステートメントのフィルターが競合していない場合でも挿入をブロックします。なぜそのように振る舞うかについての説明をいただければ幸いです。
テーブル スクリプト
セッション - 1
セッション - 2
c# - データの一貫性を確保する方法
c# アプリケーション。
テーブル内の列の選択に続いて更新を行っています。これらを分離レベルをシリアライズ可能に設定した別のトランザクションに入れています。データの一貫性を確保するためにこれを行っています。
それでも、複数のユーザーが同じ値を読み取る (選択する) ことができ、最終的に同じ値で更新しようとしていることを確認できます。
誰でも一貫性を達成する方法を提案できますか
2 人のユーザーが同じ値を読み取ることはありません。
更新されたがまだコミットされていない値を読み取るユーザーはいません。
sql - Sql Server 2005 で UPDATE 文を使用してデッドロックを回避するための最適な分離レベル
SQL Server テーブルに対して update ステートメントを実行する必要があります。このテーブルは、同時に別のプロセスによって使用されています。デッドロックが発生することがあるため、これらのデッドロックを回避または最小限に抑えるために、どの分離レベルをお勧めしますか?
hibernate - JDBC/Hibernate/JPA トランザクション分離レベルのロギング
Microsoft SQL Server データベースに接続された Flex/BlazeDS/Spring/JPA/Hibernate Web アプリケーションに取り組んでいます。テーブルをあまりにも積極的にロックしているようです。私の調査によると、スナップショット分離ポリシーを使用するのが最善の策のようです。
私は次のように設定しました:
ただし、実際に hibernate.connection.isolation を使用しているとは確信していません。JDBC データソースにもいくつかのプロパティを設定する必要があるようです。
現在、クエリのトランザクション分離レベルとして 4096 を使用しているかどうかを確認したいと思います。
特定のクエリが使用している分離レベルを明確に確認するために、logback.xml ファイルに追加できるパッケージとログ レベルは何ですか?
ありがとう!
sql - 挿入を無視して選択した行をロックするには、どのタイプのトランザクション IsolationLevel を使用する必要がありますか?
トランザクションを開始し、Table1 にレコードを挿入し、実行時間の長い (最大 30 秒) Web サービスを呼び出すプロセスがあります。Web サービスの呼び出しが失敗した場合、挿入はロールバックされます (これが望ましいことです)。これは挿入の例です(実際には複数のテーブルへの複数の挿入ですが、この質問のために単純化しています):
次のように、最初のステップから Table1 をクエリする 2 番目のプロセスがあります。
次に、ユーザーのその行を更新します。プロセス 1 の実行中は、Table1 がロックされるため、プロセス 1 が完了するまでプロセス 2 は完了しません。これは、プロセス 1 が Web サービスの呼び出しを完了するまでに長い遅延が発生するため、問題になります。
プロセス 1 は 1 の StatusTypeId のみを挿入し、Table1 に挿入する唯一の操作でもあります。プロセス 2 は StatusTypeId = 2 に対してのみクエリを実行します。プロセス 2 に、Table1 への挿入を無視するが、選択した行をロックするように指示したいと思います。プロセス 2 のデフォルトの分離レベルでは待機が多すぎますが、IsolationLevel.ReadUncommitted がダーティ データの読み取りを許可しすぎているのではないかと心配しています。プロセス 2 を実行している 2 人のユーザーが誤って同じ行を取得することは望ましくありません。
挿入された行を無視すると言う ReadUncommitted 以外に使用する別の IsolationLevel はありますが、選択した行が選択されていることを確認してください。