gpt4 book ai didi

.net - 如何以编程方式清除 MSMQ 系统队列日志?

转载 作者:行者123 更新时间:2023-12-04 18:17:17 27 4
gpt4 key购买 nike

需要批量清除系统队列日志每周一次。

最佳答案

系统队列的正确格式:

FormatName:Direct=os:.\\System$;JOURNAL

我已经在 Windows 7 和 Windows 2003 上测试过这种格式。

(os 后面的点:表示 localhost/本地计算机)
var systemJournalQueue = new MessageQueue("FormatName:Direct=os:.\\System$;JOURNAL");
var systemDeadLetterQueue = new MessageQueue("FormatName:Direct=os:.\\System$;DEADLETTER");
var systemDeadXLetterQueue =new MessageQueue("FormatName:Direct=os:.\\System$;DEADXACT"));

systemJournalQueue.Purge();

或者如果你想保留 N 天的消息,你可以这样做:
private static void PurgeQueues(int archiveAfterHowManyDays, MessageQueue queue)
{
queue.Formatter = new XmlMessageFormatter(new Type[] { typeof(System.String) });
queue.MessageReadPropertyFilter.ArrivedTime = true;

using (MessageEnumerator messageReader = queue.GetMessageEnumerator2())
{
int counter = 0;
while (messageReader.MoveNext())
{
Message m = messageReader.Current;
if (m.ArrivedTime.AddDays(archiveAfterHowManyDays) < DateTime.Now)
{
queue.ReceiveById(m.Id);
counter++;
}
}
}
}

关于.net - 如何以编程方式清除 MSMQ 系统队列日志?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1063378/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com