2011-01-05 11 views

答えて

29

セーフモードは、dbに書き込む場合にのみ関連します。

セーフモードがオフで、書き込み操作が失敗した場合、ドライバは気にしないで待っています。ネットエフェクトは例外もスローされず、エラーがあることもわかりません。

セーフモードをオンに設定すると、ドライバは強制的に成功の確認を待機し、エラーが発生した場合は例外がスローされます。

気になるデータ(ユーザーアカウント、注文など)にセーフモードを使用します。

はセーフモードをオフに持っていることは必須ではないデータ(ログ、使用統計情報など)

のMongoDBのデフォルトの動作があるためにセーフモードを使用しないでください。

+3

ありがとうございます;) – Edward83

24

ありセーフモード、 の様々なレベルがあり、このクラスは これらのレベルを表すために使用されます。 SafeModeは、 の操作には、 の値が返されていないため、クエリには適用されません( またはコマンドには適用されません)。これは、 のMongoCollectionメソッドに続いて に適用されます。挿入、削除、保存、および更新。

セーフモードの要旨は 挿入、削除した後、 ドライバーが運転 が成功したことを確認することができますので、それはGetLastErrorをコマンドによって を踏襲しているサーバーに送信され保存するか、メッセージ を更新していることです。さらに、 レプリカセットを使用する場合、 を確認して、 という情報が最小数の セカンダリサーバーに複製されていることを確認することができます。

セーフモードクラスを使用すると、簡単に共通のモードにアクセスするか、 独自に作成 せ静的 プロパティとメソッドを持っています

* SafeMode.False 
* SafeMode.True 
* SafeMode.WaitForReplications(int n) 

「n」はとても一般的に、あなたは、nをしたい、 主が含まの値> = 2

SafeModeの目的を理解するには十分だと思いますが、

1

SafeModeは廃止されているようです。

相当物は、MongoClientSettings(通常はMongoClientコンストラクタに渡されます)のWriteConcern.Acknowledgedです。 Acknowledgedは、現在のバージョンのドライバ(2.2.4)のデフォルトのWriteConcernです。

も参照してくださいMongoDb SafeMode compare to WriteConcern

関連する問題