その結果、DB から同じオブジェクトを取得します。どちらの場合も、DB レベルのロックを使用します。すべて単一のセッション/トランザクション内。
funk()
funk()
def funk() {
def account = Account.withCriteria {
id 123
lock true
lockMode LockMode.UPGRADE_NOWAIT
}
account.save()
}
問題: 2 回目の取得で、HTTP ソケットの読み取りが永遠にハングします。
コードをあまり再設計せずに問題を解決することは可能ですか?
- たぶん手動ロック解除で
- または再入可能ロックを介して
- または、すでにロックされていることがわかっている場合は、ロックをスキップできます...
Grails 2.2.0、一部の Hibernate、Oracle XE