我想设置一个Recoverable attribute格式的消息,我发送给MSMQ。我一直在搜索一些资源如何在PHP中执行此操作,但我没有找到任何。我试过这个
if(!$msgOut = new COM("MSMQ.MSMQMessage")){
return false;
}
$msgOut->Body = $this->getBody();
$msgOut->Label = $this->getLabel();
$msgOut->Recoverable = true;
$msgOut->Send($msgQueue);
但它不起作用。我也尝试将布尔值设置为字符串值和整数,但没有一个工作。当我尝试$msgOut->Recoverable = "true";
或$msgOut->Recoverable = true;
时,我得到了com_exception
无法查找“可恢复”:未知名称。
没有可恢复的属性,所以这一行是错误的:
$msgOut->Recoverable = true;
根据类MSMQMessage的文档,属性名称应为“Delivery”,值为MQMSG_DELIVERY_RECOVERABLE:
public const int MQMSG_DELIVERY_EXPRESS = 0;
public const int MQMSG_DELIVERY_RECOVERABLE = 1;
您可以通过以下方式发送可恢复的消息:
$msgOut->Body = $this->getBody();
$msgOut->Label = $this->getLabel();
$msgOut->Delivery = 1;
$msgOut->Send($msgQueue);