有沒有辦法使用 C# 來識別私有 MSMQ 是否超出了它的存盤限制 (KB)?
在以下示例中,我使用計算機管理控制臺創建了一個私有 MSMQ,并將存盤限制設定為 100 KB。

我使用一個運行良好的簡單 c# 程式向佇列發送訊息。我希望能夠弄清楚何時達到限制以停止發送訊息。
MessageQueue msgQ =new MessageQueue(".\\Private$\\name_of_queue");
msgQ.Send(msg);
uj5u.com熱心網友回復:
佇列的最大大小
使用MessageQueue.MaximumQueueSize 屬性獲取佇列的最大大小。
佇列的最大大小(以千位元組為單位)。訊息佇列默認指定不存在限制。
所以,這樣的事情應該作業:
var msgQ = new MessageQueue(".\\Private$\\name_of_queue");
long size = msgQ.MaximumQueueSize;
佇列大小
使用PerformanceCounter獲取佇列的當前大小:
var bytesCounter = new PerformanceCounter(
"MSMQ Queue",
"Bytes in Queue",
Environment.MachineName "\\private$\\queue-name");
看起來有兩個不同的查詢來獲取當前佇列的大小:
| 詢問 | 描述 |
|---|---|
| 佇列中的位元組數 | 顯示當前駐留在佇列中的總位元組數。對于計算機佇列實體,這表示死信佇列。 |
| 日志佇列中的位元組數 | 顯示駐留在日志佇列中的總位元組數。對于計算機佇列實體,這表示計算機日志佇列。 |
上述查詢是在 MSDN 上現已棄用的MSMQ 佇列物件部分中找到的。但是,我相信這些查詢仍然有效。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/365817.html
