0

次のタスクがあります。同じキューに 2 つのクライアントがハングしていて、両方ともあらゆる種類のメッセージを消費できます。望ましい機能は、クライアントがメッセージをコミットせずにキューから読み取り、処理が終了したときにのみコミットすることです。その間、他のクライアントはメッセージを処理できません (非デキュー、ブロッキング読み取り = NDBR)。実際の例:

キュー、Msg1、および Msg2 に書き込まれたメッセージ。必要な機能: Client1 NDBR のメッセージ 1 -> キューの内容 (Msg1-blocked,Msg2) -> クライアント 2 NDBR の Msg2 -> キューの内容 (Msg1-blocked,Msg2-blocked) -> クライアント 1 が Msg1 のコミットを終了 -> キューの内容 (Msg2) - ブロック)-> クライアント 2 が処理を終了し、Msg2 をコミットします-> キューが空です。

そのような解決策は可能ですか?

4

1 に答える 1

1

確かに - 標準的なもの。マニュアルに記載されています。同期点とコミット/バックアウトを調べます。

于 2013-06-17T23:17:43.767 に答える