4

Apache.NMS(C#)を使用してプログラムでキューをパージする機能が必要です。NMS APIを調べてきましたが、そのような機能はありません。それは存在しますか?

4

2 に答える 2

6

NMS API からキューをフラッシュする直接的な方法はありません。これは管理機能のようなものです。IConnection インスタンスを Apahce.NMS.ActiveMQ.Connection にキャストしてから、DeleteDestination を呼び出すことができます。これは、キューにコンシューマーが存在しない場合は機能しますが、存在する場合は例外をスローします。

于 2011-02-16T19:50:11.517 に答える
0

キューを「フラッシュ」する(すべてのメッセージを削除する)の意味が正確にはわかりませんが、セッションをトランザクションに設定することでメッセージを管理できます。

ISession consumerSession = = connection.CreateSession(AcknowledgementMode.Transactional);

次に、次のいずれかを使用できます。

//will remove message from queue on success
consumerSession.Commit();

また:

//on failure, back on queue
consumerSession.Rollback();
于 2012-04-23T17:11:04.143 に答える