I'd like to set a Recoverable attribute form messages which I'm sending to MSMQ. I've been searching some resources how to do this in PHP but I haven't found any. I've tried this
    if(!$msgOut = new COM("MSMQ.MSMQMessage")){
        return false;
    }           
    $msgOut->Body = $this->getBody(); 
    $msgOut->Label = $this->getLabel();
    $msgOut->Recoverable = true;
    $msgOut->Send($msgQueue); 
but it does not work. I've also tried to set the boolean as a string value and integer but none of it worked.
When I try $msgOut->Recoverable = "true"; or $msgOut->Recoverable = true; I got com_exception 
Unable to lookup `Recoverable': Unknown name.
There is no recoverable property, so this line is wrong:
$msgOut->Recoverable = true;
According the documentation of the class MSMQMessage, the property name should be "Delivery" and value is MQMSG_DELIVERY_RECOVERABLE:
public const int MQMSG_DELIVERY_EXPRESS = 0;
public const int MQMSG_DELIVERY_RECOVERABLE = 1;
You can send recoverable message in this way:
$msgOut->Body = $this->getBody(); 
$msgOut->Label = $this->getLabel();
$msgOut->Delivery = 1;
$msgOut->Send($msgQueue); 
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With