(PECL mongo >=1.1.0)
Mongo::switchSlave — slaveOkay 読み込み用の新しいスレーブを選ぶ
これは、読み込み用に使う新しいスレーブをランダムに選びます。 ドライバから自動的にコールされるので、このメソッドを使う必要はありません。このメソッドは Mongo::getHosts() (ホストの状態を更新) および Mongo::getSlave() (返り値を取得) をコールします。
読み込みのスレーブへの分散についての情報は、このマニュアルの 問い合わせの節 を参照ください。
この関数にはパラメータはありません。
この接続が読み込みに使っているスレーブのアドレスを返します。 アドレスはランダムに選ばれるので、前と同じアドレスになることもあります。 稼働中のセカンダリが 1 台だけ (あるいはプライマリだけ) の場合はひとつのアドレスしか返しません。
たとえば、プライマリ・セカンダリ・アービター (調停者) の 3 台からなるレプリカセットの場合、 このメソッドは常にセカンダリのアドレスを返します。セカンダリがダウンしているときは、 このメソッドは常にプライマリのアドレスを返します。プライマリもダウンしたときは このメソッドは例外をスローします。アービターが読み込みを処理できないからです。
レプリカセットでない接続に対してコールした場合は MongoException (エラーコード 15) をスローします。 読み込み先 (プライマリあるいはセカンダリ) が見つからない場合は MongoException (エラーコード 16) をスローします。