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

时间:2017-11-14 07:14:56

标签: php message-queue msmq

我想设置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

  

无法查找“可恢复的':未知名称。

1 个答案:

答案 0 :(得分:3)

没有可恢复的属性,所以这一行是错误的:

import org.apache.spark.launcher.SparkAppHandle;
import org.apache.spark.launcher.SparkLauncher;

   public class MyLauncher {
     public static void main(String[] args) throws Exception {
       SparkAppHandle handle = new SparkLauncher()
         .setAppResource("/my/scala.jar")
         .setMainClass("my.spark.app.Main")
         .setMaster("local")
         .setConf(SparkLauncher.DRIVER_MEMORY, "2g")
         .startApplication();
       // Use handle API to monitor / control application.
     }
   }

根据班级MSMQMessage的文档,属性名称应为“投放”,值为MQMSG_DELIVERY_RECOVERABLE

$msgOut->Recoverable = true;

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

public const int MQMSG_DELIVERY_EXPRESS = 0;
public const int MQMSG_DELIVERY_RECOVERABLE = 1;