2017-11-14 18 views
5

MSMQ로 보내는 Recoverable attribute 양식 메시지를 설정하고 싶습니다. PHP에서이 작업을 수행하는 방법에 대한 자료를 찾고 있었지만 찾을 수 없었습니다. 나는 이것을 시도했다PHP에서 MSMQ 메시지의 복구 가능한 속성 설정

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

`복구 조회 할 수 없습니다

을 가지고 : 알 수없는 이름입니다.

+0

'복구 가능'으로 시도 하시겠습니까? –

+0

@LioraHaydont 맞춤법을 고쳐 주셔서 고마워요,하지만 여전히 오류를 반환합니다. – DropDropped

+0

나는 그것이 오타라고 생각했지만, 그렇게 쉽지는 않을 것이라고 생각한다 : / –

답변

3

아무 복구 속성이 없기 때문에이 라인은 잘못된 것입니다 :

$msgOut->Recoverable = true; 

클래스 MSMQMessage의 문서에 따르면이 속성 이름은 "배달"해야하며, 값은 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);