(PECL mongo >= 1.5.0)
Lors d'une communication avec MongoDB 2.6.0 et suivants, certaines opérations (comme les écritures) peuvent lancer une exception MongoProtocolException lorsque la réponse du serveur n'a pas de sens - par exemple, lors d'une erreur de réseau (impossible de lire la totalité de la réponse), ou lors d'une corruption de données.
Cette exception est également lancée lors d'une tentative de communication avec des protocoles nouveaux sur des serveurs plus anciens, par exemple, en utilisant MongoWriteBatch avec des serveurs MongoDB dont la version est inférieure à 2.6.0.
Exemple #1 Catching MongoProtocolException
Exécution de l'exemple suivant sur un serveur MongoDB dont la version est antérieure à 2.6.0 va lancer une exception MongoProtocolException
<?php
$mc = new MongoClient("localhost");
$c = $mc->selectCollection("test", "test");
try {
$batch = new MongoInsertBatch($c);
} catch(MongoProtocolException $e) {
echo $e->getMessage();
}
?>
Les exemples ci-dessus vont afficher quelque chose de similaire à :
Current primary does not have a Write API