【问题标题】:How to purge a MSMQ system queue journal programatically?如何以编程方式清除 MSMQ 系统队列日志?
【发布时间】:2010-11-06 23:53:56
【问题描述】:

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

【问题讨论】:

    标签: .net msmq logging


    【解决方案1】:

    系统队列的正确格式:

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

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

    (os后面的点:表示本地主机/本地计算机)

    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++;
                }
            }
        }
    }
    

    【讨论】:

      【解决方案2】:

      Answerd here

      MessageQueue mq = new MessageQueue("DIRECT=OS:computername\SYSTEM$;JOURNAL");
      mq.Purge();
      

      【讨论】:

      • 正确格式:var mq = new MessageQueue("FormatName:Direct=os:.\\System$;JOURNAL");
      【解决方案3】:
      MessageQueue mq = new MessageQueue(".\\Journal$");
      mq.Purge();
      

      MessageQueue mq = new MessageQueue(".\\myQueue\\Journal$");
      mq.Purge();
      

      如果它用于您创建的队列。确保用户具有正确的权限。看: http://msdn.microsoft.com/en-us/library/system.messaging.messagequeue.aspx

      【讨论】:

        猜你喜欢
        • 2010-11-11
        • 1970-01-01
        • 2020-04-23
        • 2011-09-24
        • 2011-06-16
        • 2011-06-27
        • 2010-11-19
        • 2015-11-23
        • 2011-03-07
        相关资源
        最近更新 更多