当前位置:  开发笔记 > 编程语言 > 正文

异常后重新发送到MSMQ

如何解决《异常后重新发送到MSMQ》经验,为你挑选了1个好方法。

我正在尝试在抛出异常时将消息放回MSMQ.以下代码似乎可以工作,但Message没有放回队列中?

Message msg = null;
try
{
    MessageQueue MQueue = new MessageQueue(txtMsgQPath.Text);
    msg = MQueue.ReceiveById(txtQItemToRead.Text);
    lblMsgRead.Text = msg.Body.ToString(); // This line throws exception
}
catch (Exception ex)
{
    lblMsgRead.Text = ex.Message;
    if (msg != null)
    {
        MessageQueue MQ = new MessageQueue(txtMsgQPath.Text);
        MQ.Send(msg);
    }
}

tomasr.. 5

几点:最好的方法是使用跨越两个队列的事务; 那样你就会知道你不会丢失信息.

第二部分是要小心如何创建队列以及如何将消息提交到第二个队列.特别是,MSMQ在发送消息时有时似乎"无声地失败"(尽管实际上错误消息记录在死信队列的其他地方),特别是如果发送的事务选项与目标的事务性质不匹配队列.



1> tomasr..:

几点:最好的方法是使用跨越两个队列的事务; 那样你就会知道你不会丢失信息.

第二部分是要小心如何创建队列以及如何将消息提交到第二个队列.特别是,MSMQ在发送消息时有时似乎"无声地失败"(尽管实际上错误消息记录在死信队列的其他地方),特别是如果发送的事务选项与目标的事务性质不匹配队列.

推荐阅读
手机用户2402852387
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有