使用powershell创建MSMQ消息的克隆/复制副本
我正在开发一个powershell实用程序,它将在用户进程耗尽队列时添加现有消息的副本,从而在专用队列上维护最少数量的消息 这就是我正在做的使用powershell创建MSMQ消息的克隆/复制副本,powershell,msmq,Powershell,Msmq,我正在开发一个powershell实用程序,它将在用户进程耗尽队列时添加现有消息的副本,从而在专用队列上维护最少数量的消息 这就是我正在做的 [Reflection.Assembly]::LoadWithPartialName("System.Messaging") | out-null [Reflection.Assembly]::LoadWithPartialName("System.Text") | out-null . . $enum = $queue.GetMessageEnumera
[Reflection.Assembly]::LoadWithPartialName("System.Messaging") | out-null
[Reflection.Assembly]::LoadWithPartialName("System.Text") | out-null
.
.
$enum = $queue.GetMessageEnumerator2();
while($enum.MoveNext())
{
#Strategy 1 - Re-add existing message to queue
$message = $enum.Current;
$queue.Send($message);
#Strategy 2 - Add a dummy message to queue
$messageClone = New-Object System.Messaging.Message;
$queue.Send($messageClone);
logInfo("Number of messages in Queue - " + $queue.GetAllMessages().Length);
}
.
.
我认为这不起作用,因为将消息添加到队列后,消息总数保持不变。你能告诉我这种方法的问题吗?我没有以正确的方式创建重复消息。这是这个问题的答案
[Reflection.Assembly]::LoadWithPartialName("System.Messaging") | out-null
[Reflection.Assembly]::LoadWithPartialName("System.Text") | out-null
.
.
$enum = $queue.GetMessageEnumerator2();
while($enum.MoveNext())
{
$tran = new-object System.Messaging.MessageQueueTransaction;
$tran.Begin();
#$msgContent
$message = $enum.Current;
$msg = new-object System.Messaging.Message;
$msg.BodyStream = $message.BodyStream;
$queue.Send($msg, $tran);
$tran.Commit();
}
.
.