在PHP中为MSMQ消息设置Recoverable属性

Dro*_*ped 5 php msmq message-queue

我想设置一个Recoverable属性表单消息,我发送给MSMQ.我一直在搜索一些资源如何在PHP中执行此操作,但我没有找到任何.我试过这个

    if(!$msgOut = new COM("MSMQ.MSMQMessage")){
        return false;
    }           

    $msgOut->Body = $this->getBody(); 
    $msgOut->Label = $this->getLabel();
    $msgOut->Recoverable = true;
    $msgOut->Send($msgQueue); 
Run Code Online (Sandbox Code Playgroud)

但它不起作用.我也尝试将布尔值设置为字符串值和整数,但没有一个工作.当我尝试$msgOut->Recoverable = "true";或$msgOut->Recoverable = true;我得到com_exception

无法查找"可恢复":未知名称.

Kri*_*ers 3

没有可恢复的财产,因此这一行是错误的:

$msgOut->Recoverable = true;
Run Code Online (Sandbox Code Playgroud)

根据MSMQMessage类的文档,属性名称应为“Delivery”,值为MQMSG_DELIVERY_RECOVERABLE:

public const int MQMSG_DELIVERY_EXPRESS = 0;
public const int MQMSG_DELIVERY_RECOVERABLE = 1;
Run Code Online (Sandbox Code Playgroud)

您可以通过以下方式发送可恢复的消息:

$msgOut->Body = $this->getBody(); 
$msgOut->Label = $this->getLabel();
$msgOut->Delivery = 1;
$msgOut->Send($msgQueue); 
Run Code Online (Sandbox Code Playgroud)