2014-07-07 3 views
1

PHP로 작성된 나의 소비자를위한 장애 극복 기능을 구현하려고합니다.PHP 스톰프 클라이언트가 2 차 MQ로 장애 복구하지 않습니다

<?php 
require_once $root.'lib/stomp.php'; 

$con = new Stomp('failover://(tcp://MQ1:61612,tcp://MQ2:61612)?randomize=false'); 
$con->connect(username,password); 
$con->subscribe($receiveQueue, array('ack' => 'client','activemq.prefetchSize' => 1)); 

while ($con->hasFrameToRead() == true) { 
    $con->begin("tx1"); 

    if($con->isConnected() == false) { 
     $con->_reconnect(); 
    } 

    // bla bla bla... 
} 

$con->disconnect(); 
?> 

나는 PHP 클라이언트를 시작하면, MQ1를 연결할 수 있습니다,하지만 난 MQ1 서버에서 MQ 서비스를 죽일 후에는 장애 복구하지 않습니다 MQ2에 : 아래는 구조입니다.

제가 놓친 부분이 있습니까? 아니면 MQ 서버 측에서 필요한 구성이 필요합니까?

지금까지 장애 조치는 연결을 위해 작동하고, 나중에 다시 연결하지 않는 PHP 클라이언트의 내가 본에서 사전 :

+0

귀하는 어떤 클라이언트를 사용하고 있는지 알릴 수 있습니다. –

+0

이 PHP 클라이언트를 사용하고 있습니다 : http://www.php.net/manual/en/book.stomp.php – TingYuan

+0

클라이언트가 시작되면 어떻게됩니까? 그리고 MQ1이 다운되었습니다. MQ2에 연결됩니까? 클라이언트가 연결 시간 장애 조치뿐만 아니라 런타임 장애 조치를 지원합니까? –

답변

0

에 감사드립니다. 나는 당신이 사용하고있는 특정 클라이언트의 상태에 대해 확신하지 못한다.하지만 정말로 도움이되는지 개발자들과 확인하는 것이 가치가있다.

연결 손실을 적절하게 감지하려면 클라이언트가 소켓을 적극적으로 사용해야하거나 STOMP v1.1 이상을 사용하여 백그라운드에서 어떤 종류의 활성 유지 검사를 수행해야합니다. 그렇지 않으면 접속 손실이 눈에 띄지 않을 수 있습니다.

당신이 가장 좋은 방법은 당신이 어떤 해결책을 찾기 위해 사용하는 PHP 스톰프 클라이언트의 개발자들과 작업하는 것입니다.