問題タブ [optimistic-concurrency]

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 に答える
2113 参照

concurrency - イベント予約の同時実行

イベント予約サイトを実装しています。ショップの観点からは、座席が実際に顧客に予約された場合にのみ、データベースから座席を減らす必要があります。

私の質問は同時実行性についてです。たとえば、空席数が 1 のイベントがあるとします。

2 人のユーザーが同じイベント シートを同時に購入しようとしている場合、そのうちの 1 人の顧客が座席の支払いに成功したときに、2 番目の顧客が座席が既に予約されているため、座席の支払いができないようにしたい。

他のお客様が予約できないように予約することはできますか?

0 投票する
0 に答える
283 参照

ormlite-servicestack - サービススタック ormlite タイムスタンプのサポート

servicestack-ormlite で楽観的同時実行のために SqlServer タイムスタンプを使用することは可能ですか?

現在、私がそれを使用している場合、ormlite はそれを更新しようとしています。これが行バージョンであることを ormlite に伝える属性が必要だと思います。

このようなものが存在しない場合、追加するのは簡単ではないはずです.私の唯一の質問は、属性で行うべきですか? はいの場合、この属性をどこに配置すればよいですか

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

concurrency - RavenDB が ConcurrencyException をスローし続ける

同じドキュメントを連続して複数回更新しようとすると、ConcurrencyException が発生し続けます。PUT attempted on document '<id>' using a non current etagがメッセージです。

UI から保存するたびに、MassTransit を使用してイベントを発行します。このイベントはサブスクライバー キューに送信されますが、イベント ハンドラーをオフラインにします (オフライン サブスクライバーをテストします)。イベントハンドラがオンラインになると、キューが読み取られ、メッセージが意図したとおりに処理されます。

ただし、同じオブジェクトが複数回キューにあるため、最初の書き込みは成功しますが、次の書き込みは成功せず、この同時実行例外がスローされます。

ファクトリ クラスを使用して、すべてのアプリケーションで一貫した IDocumentStore と IDocumentSession を保持しています。UseOptimisticConcurrency = falseGetSession() メソッドで具体的に設定します。

イベントハンドラはこんな感じ。IDocumentSession は、依存性注入を使用して注入されます。IDocumentSession のインスタンスを取得するロジックは次のとおりです。

そして、これが ConcurrencyException を持つ実際の EventHandler です。

並行性への対処方法についてビジネスで整理できるようになるまで、現時点では並行性例外を無視したいと思います。

では、ConcurrencyException が発生する理由はありますか? ドキュメントが以前に更新されたかどうかに関係なく、保存が行われるようにします。

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

apache-zookeeper - ZooKeeper は 1 回の操作で znode データと znode データ バージョン (stat) を取得できますか?

ZooKeeper をデータストアとして使用するアプリケーションを開発しています。アプリケーションのメソッドの 1 つで、オプティミスティック コンカレント コントロールを使用する必要があります。たとえば、znode データを取得する get メソッドを実装する必要があり、znode データ バージョンを楽観的同時制御チェックに使用します。私が理解していることでは、1 回の操作で znode データと znode データ バージョンを取得することはできません。znode データを更新する競合が多い場合、znode データの取得後に znode データが変更される可能性があるため、get メソッドは機能しません。だから私は尋ねています - znodeデータとznodeデータバージョン(またはznode stat)を1回の操作でその間にロックを試みることなく取得できる方法はありますか?

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

hibernate - StaleObjectStateException と OptimisticLockException の比較

アプリでオプティミスティック同時実行の問題が発生すると、 OptimisticLockException ではなく StaleObjectStateException がアプリでスローされます (私が読んだように、これを期待する必要があります)。コードを投稿する必要はありません。タイムスタンプ列のバージョンが間違っているという最も基本的な同時実行の問題です。

他の例外ではなく、OptimisticLockException を取得するにはどうすればよいですか?

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

c# - Entity Framework & SQL (ADO.NET) との同時実行

同時実行性に問題があります。http://blogs.msdn.com/b/alexj/archive/2009/05/20/tip-19-how-to-use-optimistic-concurrency-in-the-entity-のオプティミスティック コンカレンシー処理を読みました。フレームワーク.aspx

WCF サービスで実際にこれをテストするためのコードがあります。

さらに、モデルの「コイン」同時実行モードを「固定」に設定しました。ただし、これはスルーされ、データベースに保存される値は「1」です。いくつかの値のセットを試してみたので、「偶然正しい」というわけではありません。ここで OptimisticConcurrencyException が発生しないのはなぜですか?

[更新 #1]以下の最初の応答を試してそれらを組み合わせることで、DbUpdateConcurrencyException を時々出力することができました。それはまだ私が期待している OptimisticConcurrencyException ではありませんが、それは何かです。基本的に、なぜそれが常に起こっていないのか、私には手がかりがありません。

ここに同時実行性の問題があるようです!! :D

[更新 #2]わかりました。今、その一部を把握しましたが、ほとんどがばかげたユーザー エラーでした。DbUpdateConcurrencyException は 2 回目以降 1 回だけスローされます。2 番目の句はそれを既にある値に更新するため、その部分は論理的です。2 つのエンティティが同じコンテキストからフェッチされた場合、後者の変更は単純に考慮されるため、最初の応答で示唆されているように「1 つのデータベース接続」の場合、同時実行例外は発生しません。複数のハンドルを介してオブジェクトにアクセスしないようにすることはプログラマの責任であるため、これは論理的です。

私が得られないのは、DbUpdateConcurrencyException と OptimisticConcurrencyException の違いです。私は後者を上げることができませんでした。

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

spring - Hibernate と Spring を使用した楽観的ロックの実装

更新状況が失われないように、楽観的ロックを実装しようとしています。私のアプリケーションでは、2 人のユーザーが同じレコードを取得し、最初のユーザーがいくつかの変更を加えて更新します。この変更は、同じレコードを表示する 2 番目のユーザーには表示されず、自分で変更を加えて更新します。そのため、最初の人の変更が失われます。これを防ぐために、次のように書いていますが、それでも問題は解決しません。私はこの概念に不慣れで、問題を特定できません。

ドキュメント11.3.4を読んでこれを達成しようとしました。自動バージョン管理セクションのカスタマイズ。

  • 構成ファイル

    /li>
  • エンティティ クラス

    /li>
  • DAO実装

    /li>

前もって感謝します

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

c# - Entity Framework での同時実行例外

SaveChangesEntity Framework (CF、C#) で/を呼び出すときSaveChangesAsyncに、変更の競合が発生した場合 (たとえば、最後の読み取り以降に値が更新された場合)、これら 2 つの例外のどちらDbUpdateConcurrencyExceptionOptimisticConcurrencyExceptionキャッチする必要がありますか?

そして、それらの違いは何ですか?