問題タブ [pessimistic-locking]
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 - jOOQ SELECT FOR UPDATE ロックが解放されない
jOOQ を使用して、行に対して SELECT FOR UPDATE を実行し、後続の MERGE 操作を同期しています。ただし、MERGE が完了すると、FOR UPDATE によって保持されたロックは解放されません。私の DataSourceConnectionProvider には、ComboPooledDataSource (接続プール) が供給されています。
私は、接続に関して明示的なことは何もしていません。私がすることはすべて:
1) DSL コンテキストを取得する
2) SELECT FOR UPDATE を実行する .. NO WAIT
3) MERGE を実行
する 4) スレッドを返す
ロックが確実に解除されるようにする方法について何か考えはありますか?
java - ネイティブ クエリを Hibernate クエリに変換する
DBテーブルからデータを抽出する次の方法があります
このネイティブ クエリを Hibernate クエリに変換するにはどうすればよいですか (第 2 レベルのキャッシュを無効にしないため)。私はそれに相当するものを読みました
SELECT ... FOR UPDATE
Hibernate では、次の方法で実装できます。
PESSIMISTIC_WRITE
grails - GORM where query での悲観的ロック
GORM の where クエリで悲観的ロックを実現したいと考えています。
何かのようなもの
私は知っています、私は基準APIによってそれを達成することができます:
「where」クエリを介してこれを達成する方法はありますか?
oracle - Hibernate Pessimistic Locking が Oracle データベースで機能しない?
複数のスレッドから呼び出すことができるトランザクション メソッドがあります。
同時呼び出しが発生するのを避けるためStaleStateException
に、休止状態で悲観的ロックを使用しましたが、期待どおりに機能せず、StaleStateException
. 次に、ログを調べたところ、オブジェクトが適切にロックされていないことがわかりました。これが私のログです。
私の取引方法はここにあります:
ロックを使用した私のDAOメソッドは次のとおりです。
ログからわかるように、requirementCoverages
によって返されたfindAllFromTestId
ものはロックされていません。それぞれのロックはrequirementCoverage
、開始後にのみ取得されますfor (RequirementCoverage requirementCoverage : requirementCoverages)
。
StaleStateException
その原因は、あるスレッドがリストrequirementCoverages
を取得して各オブジェクトにアクセスしようとしているのに、同時にrequirementCoverages
別のスレッドによって変更されていることだと思います。
私は正しいですか?requirementCoverages
別のスレッドがアクセスするのをブロックするリストをロックする方法はありますか? どんな助けでも大歓迎です。
jpa - java.lang.NoSuchFieldError:ApacheキャメルのjpaConsumerでのPESSIMISTIC_WRITEエラー
camel jpaはデフォルトで私が使用している2.13.0からのPESSIMISTIC_WRITEですが、2つのルートで同じjpaコンポーネントを使用しているときにPESSIMISTIC_WRITEで以下のエラーが発生します
エラー:
私のラクダのコンテキスト
purchaseOrder クラス
asp.net-mvc - NHibernate - ASP.NET MVC アクションで重要なトランザクションを処理する方法
重要なトランザクションを処理するアクションがあり、トランザクションを処理する最善の方法がわかりません。
これは私がしなければならないことの簡単な例です:
最初に質問したいのは、この種の操作では、同じ注文に対して同時に複数のリクエストを行うことができる場合 (つまり、同じ注文に対するブラウザーからのクイック リクエスト)、悲観的ロックを使用して 1 つのトランザクションを実際に保証する必要があるかどうかです。時間またはBeginOrderProcess
楽観的ロックを使用してほぼ同時に同じ注文に対する2つの同時リクエストで2回呼び出されないようにする方法があります(おそらくより高速になると考えられます)?
第二に、私はそれを完全に間違った方法で行っていますか?このようなケースを処理するためのより良い方法はありますか? 言い換えれば、これをどのように処理すればよいですか?:)
grails - hasMany を使用して悲観的ロックを追加する場所は?
このコードがあるとします
ドメイン
コントローラ
子インスタンスごとにロックを追加する必要がありますか、それとも親を取得するときにロックを追加するだけですか?