我正在尝试找到暂停私有队列的方法。这可能吗?看起来这可能在Outgoing队列中,但不是私有队列?我看到使用Powershell cmdlet可以调用Suspend-MsmqOutgoingQueue,但这仅适用于Outgoing队列。您也可以通过调用MSMQOutgoingQueueManagement.Pause(但同样不在专用队列上)在.net中为传出队列执行相同操作。
当我们的系统处于维护模式时,我们正在尝试使用自动作业调度程序来暂停队列,因此当我们从数据库关闭时或者当它被支持时,我们不会丢失我们的消息起来。
答案 0 :(得分:2)
没有API可以在专用队列上执行此操作。
如何使私有队列进行事务处理?如果它是事务性的(并且您在接收端处理消息),那么当发生错误(DB相关或其他)时,消息将保留在队列中。
如果您要执行此操作,请注意有害消息的设置。在N次处理失败后,您不希望将消息从队列中删除。