クラス: Mongo::Server::Connection
- 継承:
-
ConnectionBase
- オブジェクト
- ConnectionCommon
- ConnectionBase
- Mongo::Server::Connection
- 次による拡張機能。
- 転送可能
- 定義:
- lib/mongo/ サーバー/ connection.rb
Overview
このクラスは、サーバーのソケット接続とその動作をモデル化します。
定数の概要の削減
- PING =
非推奨。
サーバー選択の仕様が不要になりました。
ping コマンド。
{ :ping => 1 }.freeze
- PING_OP_MSG =
非推奨。
サーバー選択の仕様が不要になりました。
OP_MSG(サーバー バージョン >= 3.6 )の ping コマンド
{ :ping => 1, '$db' => Database::管理者 }.freeze
- PING_MESSAGE =
非推奨。
サーバー選択の仕様が不要になりました。
ping メッセージ。
プロトコル::クエリ.新着情報(Database::管理者, Database::コマンド, ping, :limit => -1)
- PING_OP_MSG_MESSAGE =
非推奨。
サーバー選択の仕様が不要になりました。
メッセージを OP_MSG として ping します(サーバー バージョン >= 3.6 )。
プロトコル::Msg.新着情報([], {}, PING_OP_MSG)
- PING_BYTES =
非推奨。
サーバー選択の仕様が不要になりました。
未加工バイトとしての ping メッセージ。
PING_MESSAGE.直列化.to_s.freeze
- PING_OP_MSG_BYTES =
非推奨。
サーバー選択の仕様が不要になりました。
未加工バイトとしての ping OP_MSG メッセージ(サーバー バージョン >= 3.6 )。
PING_OP_MSG_MESSAGE.直列化.to_s.freeze
Loggableに含まれる定数
ConnectionBaseから継承された定数
Mongo::Server::ConnectionBase::DEFAULT_MAX_BSON_OBJECT_SIZE 、 Mongo::Server::ConnectionBase::MAX_BSON_COMMAND_OVERHEAD 、 Mongo::Server::ConnectionBase::REDED_MAX_BSON_SIZE
インスタンス属性の概要を折りたたむ
-
#global_id ⇒ Integer
readOnly
すべての接続にわたる場合、
-
#id ⇒ Integer
readOnly
同じサーバー オブジェクトへの接続全体。
-
#last_checkin ⇒ Time
readOnly
接続がプールにチェックバックされた最後の時刻。
Monitoring::Publishable
ConnectionBaseから継承される属性
#description 、 #options 、 #server
ConnectionCommonから継承される属性
インスタンス メソッドの概要を折りたたむ
-
#閉じました= true | false
接続が閉じられたかどうか。
-
# 接続します 。 (context = nil) = true
ターゲット アドレスへのネットワーク接続を確立します。
-
#接続済みかどうか= true | false
接続が接続され、中断されないか、閉じられたか、エラーが発生したか。
-
# connection_Pool = オブジェクト
private
この接続が作成された接続プール。
-
#切断します。 (options = nil) = true
接続を切断します。
- #error? ⇒ Boolean private
-
#初期化(サーバー、オプション = {}) = 接続
コンストラクター
private
指定されたオプションを使用して、指定されたターゲットアドレスに新しい接続オブジェクトを作成します。
-
#が中断されました。 = オブジェクト
接続を中断としてマークします。
-
中断された場合= true | false
接続が中断されたかどうか。
-
#ピン= オブジェクト
private
接続をピン留めされたものとしてマークします。
-
#ping = true、false
非推奨
非推奨。
サーバー選択の仕様が不要になりました。
-
ピン留めされた数は? = ブール値
private
接続がトランザクションで使用されるか、カーソル操作で使用されるか。
-
#Record_checkin. = 自己
前回のチェックイン時間を記録します。
-
# socket_timeout =浮動小数点数(#timeout)
ソケットで操作を実行するためのタイムアウトを取得します。
-
やオブジェクト
private
接続を固定されていないとしてマークします。
IDに含まれるメソッド
再試行可能な に含まれるメソッド
#read_worker 、 #select_server 、 #write_worker
から含まれるメソッド::public
#publish_cmap_event 、 #publish_event 、 #publish_sam_event
Loggableに含まれるメソッド
#log_debug, #log_error, #log_fatal, #log_info, #log_warn, #logger
ConnectionBaseから継承されたメソッド
#app_metadata 、 #dispatch 、 #生成、 #service_id
ConnectionCommonから継承されたメソッド
#handsake_command 、 #handshake_document
コンストラクターの詳細
#初期化(サーバー、オプション = {}) =接続
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
接続は、サーバー外で直接インスタンス化されることは ありません 。
指定されたオプションを使用して、指定されたターゲットアドレスに新しい接続オブジェクトを作成します。
コンストラクターは I/O を実行しません(そのため、ソケットの作成、ハンドシェイク、認証も行われません)。接続を呼び出します。 接続オブジェクトのメソッドを使用して、ネットワーク接続を作成します。
106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 |
# ファイル 'lib/mongo/ サーバー/ connection.rb' 行 106 デフォルト 初期化(サーバー, = {}) 場合 サーバー.load_ balancer? & & [: 生成] 発生 ArgumentError, 「サーバーがロード バランサーの場合、生成を設定できません」 end @id = サーバー.next_ connection_id @ global_id = 自己.クラス.next_id @monitoring = サーバー.モニタリング @options = .freeze @server = サーバー @socket = nil @last_checkin = nil @auth_mechanism = nil @pid = プロセス.pid @pinged = false public_cmap_event( モニタリング::イベント::Cmap::ConnectionCreed.新着情報(address, id) ) end |
インスタンス属性の詳細
# global_id =整数(読み取り専用)
すべての接続にわたる場合、
140 141 142 |
# ファイル 'lib/mongo/ サーバー/ connection.rb' 行 140 デフォルト global_id @ global_id end |
ID ~整数(読み取り専用)
同じサーバー オブジェクトへの接続全体。
136 137 138 |
# ファイル 'lib/mongo/ サーバー/ connection.rb' 行 136 デフォルト id @id end |
# last_checkin =時間(読み取り専用)
接続がプールにチェックバックされた最後にチェックバックされた時刻を返します。
130 131 132 |
# ファイル 'lib/mongo/ サーバー/ connection.rb' 行 130 デフォルト last_checkin @last_checkin end |
インスタンス メソッドの詳細
#閉じました= true | false
接続が閉じられたかどうか。
閉じた接続は使用しないでください。 代わりに、接続プールから新しい接続を取得します。
166 167 168 |
# ファイル 'lib/mongo/ サーバー/ connection.rb' 行 166 デフォルト 閉じましたか !!@closed end |
# 接続します 。 (context = nil) = true
このメソッドは、以前にソケットが存在しなかった場合にソケットを設定することで接続オブジェクトをミューテーションします。
ターゲット アドレスへのネットワーク接続を確立します。
接続がすでに確立されている場合、このメソッドは何も実行しません。
229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 |
# ファイル 'lib/mongo/ サーバー/ connection.rb' 行 229 デフォルト 接続します。(context = nil) accumulate_if_closed。 ただし、 @socket @socket = create_socket(context) @description, @compressor = do_connect 場合 サーバー.load_ balancer? 場合 Lint.有効か ただし、 service_id 発生 エラー::internalDriverError, "接続はロード バランサーへの接続であり、ここで service_id を設定する必要がありますが、 end end @生成 = connection_Pool.generate_manager.生成(service_id: service_id) end public_cmap_event( モニタリング::イベント::Cmap::ConnectionReady.新着情報(address, id) ) @close_event_public = false end true end |
#接続済みかどうか= true | false
接続が接続され、中断されないか、閉じられたか、エラーが発生したか。
154 155 156 |
# ファイル 'lib/mongo/ サーバー/ connection.rb' 行 154 デフォルト 接続されていますか? !閉じましたか & & !error? & & !中断された場合 & & !!@socket end |
# connection_Pool =オブジェクト
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
この接続が作成された接続プール。 場合は nil です。
146 147 148 |
# ファイル 'lib/mongo/ サーバー/ connection.rb' 行 146 デフォルト connection_Pool [: connection_Pool] end |
#切断します。 (options = nil) = true
接続が切断されると、その接続は使用できなくなります。 接続プールから新しい接続を取得する必要があります。これにより、準備ができた接続が返されるか、新しい接続が作成されます。 リンティングが有効になっている場合、切断された接続を再利用すると Error::LintError が発生します。 リンティングが有効になっていない場合は、警告がログに記録されます。
このメソッドは、閉じが成功した場合はソケットを nil に設定して接続オブジェクトをミューテーションします。
接続を切断します。
311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 |
# ファイル 'lib/mongo/ サーバー/ connection.rb' 行 311 デフォルト 切断します。( = nil) 注:ここでは @closed は true である可能性がありますが、ソケットがある場合もあります。 # ソケットを確認し、@Closed フラグではないようにします。 @auth_mechanism = nil @last_checkin = nil 場合 ソケット ソケット.閉じる ヘルプ nil @socket = nil end @closed = true 中断されました。 場合 & & [:中断] # CMAP 仕様テストを満たすには、次の場合でも閉じたイベントを公開します: ソケットは接続されませんでした(つまり準備完了イベントは 公開された数)。 ただし、イベントを閉じているかどうか、次では行わないようにします ソケットが再接続されない限り、複数回公開します - その場合は 、ソケットが閉じるごとに閉じるイベントを公開します。 ただし、 @close_event_public 理由 = & & [:理由] public_cmap_event( モニタリング::イベント::Cmap::ConnectionClosed.新着情報( address, id, 理由, ), ) @close_event_public = true end true end |
#error? ⇒ Boolean
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
186 187 188 |
# ファイル 'lib/mongo/ サーバー/ connection.rb' 行 186 デフォルト error? !!@error end |
#が中断されました。 =オブジェクト
接続を中断としてマークします。
181 182 183 |
# ファイル 'lib/mongo/ サーバー/ connection.rb' 行 181 デフォルト 中断されました。 @trigger = true end |
中断された場合 ⇒ true | false
接続が中断されたかどうか。
中断された接続はすでにプールから削除されているため、プールにチェックバックしないでください。
176 177 178 |
# ファイル 'lib/mongo/ サーバー/ connection.rb' 行 176 デフォルト 中断された場合 !!@trigger end |
#ピン=オブジェクト
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
接続をピン留めされたものとしてマークします。
205 206 207 |
# ファイル 'lib/mongo/ サーバー/ connection.rb' 行 205 デフォルト ピン @pinged = true end |
#ping = true 、 false
サーバー選択の仕様が不要になりました。
これは、最適化のために事前にシリアル化された ping メッセージを使用します。
接続を ping して、サーバーがコマンドに応答しているかどうかを確認します。 これはサーバー側では非ブロッキングです。
356 357 358 359 360 361 362 363 364 365 |
# ファイル 'lib/mongo/ サーバー/ connection.rb' 行 356 デフォルト ping バイト = 機能.op_msg_enabled? ? PING_OP_MSG_BYTES : PING_BYTES concern_connected 行う |ソケット| 応答 = add_server_iagnostics 行う ソケット.書込み (write)(バイト) プロトコル::メッセージ.逆シリアル化(ソケット, ) end 応答.ドキュメント[0][操作::結果::OK] == 1 end end |
ピン留めされた数は? =ブール値
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
接続がトランザクションで使用されるか、カーソル操作で使用されるか。
ピン留めされた接続は、アイドル状態または古い場合、接続プールから切断して削除しないでください。
# @return [true] false ] 接続が固定されているかどうか。
198 199 200 |
# ファイル 'lib/mongo/ サーバー/ connection.rb' 行 198 デフォルト ピン留めされたかどうか @pinged end |
#Record_checkin. =自己
前回のチェックイン時間を記録します。
386 387 388 389 |
# ファイル 'lib/mongo/ サーバー/ connection.rb' 行 386 デフォルト Record_checkin. @last_checkin = 時間.になりました 自己 end |
# socket_timeout =浮動小数点数:タイムアウト
ソケットで操作を実行するためのタイムアウトを取得します。
372 373 374 |
# ファイル 'lib/mongo/ サーバー/ connection.rb' 行 372 デフォルト socket_timeout @timeout ||= [:socket_timeout] end |
やオブジェクト
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
接続を固定されていないとしてマークします。
212 213 214 |
# ファイル 'lib/mongo/ サーバー/ connection.rb' 行 212 デフォルト unpin @pinged = false end |