クラス: Mongo::Server::MongoDB::Connection Private
- 継承:
-
ConnectionCommon
- オブジェクト
- ConnectionCommon
- Mongo::Server::MongoDB::Connection
- 次のことが含まれます。
- ログ記録可能
- 定義:
- lib/mongo/ サーバー/monitor/ connection.rb
Overview
このクラスは、プライベート API の一部です。 このクラスは将来削除または変更される可能性があるため、可能な限り使用しないでください。
このクラスは、モニター接続とその動作をモデル化します。
定数の概要
Loggableに含まれる定数
インスタンス属性の概要を折りたたむ
-
アドレス= Mongo::Address
readOnly
private
アドレス 接続するアドレス。
-
#options ⇒ Hash
readOnly
private
オプション でオプションが渡されます。
-
# server_ connection_id =整数
readOnly
private
Server_ connection_id サーバー接続 ID。
ConnectionCommonから継承される属性
インスタンス メソッドの概要を折りたたむ
-
#check_document ⇒ BSON::Document
private
接続チェックに使用するドキュメントをビルドします。
-
#接続します 。 = true
private
ターゲット アドレスへのネットワーク接続を確立します。
-
# 切断します! (_options = nil) = true
private
接続を切断します。
-
#dispatch(message) ⇒ Protocol::Message
private
メッセージを送信し、結果を返します。
-
#dispatch_bytes(bytes, **opts) ⇒ Protocol::Message
private
事前にシリアル化されたメッセージを送信し、その結果を返します。
-
#handshake! ⇒ BSON::Document
private
接続済みホストに ハンドシェイク コマンド を送信し、応答を検証します。
-
#初期化(アドレス、オプション = {}) = 接続
コンストラクター
private
指定されたオプションを使用して、指定されたターゲットアドレスに新しい接続オブジェクトを作成します。
- # read_ response (**opts) = オブジェクト private
-
# socket_timeout =浮動小数点数
private
監視ソケット タイムアウトを返します。
- #write_bytes (バイト) = オブジェクト private
Loggableに含まれるメソッド
#log_debug, #log_error, #log_fatal, #log_info, #log_warn, #logger
ConnectionCommonから継承されたメソッド
コンストラクターの詳細
#初期化(アドレス、オプション = {}) =接続
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
モニタリング接続では認証されません。
指定されたオプションを使用して、指定されたターゲットアドレスに新しい接続オブジェクトを作成します。
コンストラクターは I/O を実行しません(したがって、ソケットもハンドシェイクも作成しません)。接続を呼び出します。 接続オブジェクトのメソッドを使用して、ネットワーク接続を作成します。
56 57 58 59 60 61 62 63 64 65 |
# ファイル 'lib/mongo/ サーバー/monitor/ connection.rb', 行 56 デフォルト 初期化(address, = {}) @address = address @options = .dup.freeze 発生 ArgumentError, アプリ メタデータは必須 です 。 ただし、 @app_metadata = [:app_metadata] @socket = nil @pid = プロセス.pid @compressor = nil @hello_ok = false end |
インスタンス属性の詳細
アドレス= Mongo::Address (読み取り専用)
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
接続するアドレスを返します。
71 72 73 |
# ファイル 'lib/mongo/ サーバー/monitor/ connection.rb', 行 71 デフォルト address @address end |
オプション=ハッシュ(読み取り専用)
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
オプション で渡されたオプションを返します。
68 69 70 |
# ファイル 'lib/mongo/ サーバー/monitor/ connection.rb', 行 68 デフォルト @options end |
# server_ connection_id =整数(読み取り専用)
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
Server_ connection_id サーバー接続 ID を返します。
87 88 89 |
# ファイル 'lib/mongo/ サーバー/monitor/ connection.rb', 行 87 デフォルト server_ connection_id @server_ connection_id end |
インスタンス メソッドの詳細
#check_document ⇒ BSON::Document
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
接続チェックに使用するドキュメントをビルドします。
224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 |
# ファイル 'lib/mongo/ サーバー/monitor/ connection.rb', 行 224 デフォルト checkpoint_document server_api = @app_metadata.server_api || [:server_api] doc = 場合 hello_ok? || server_api _doc = HELLO_DOC _doc = _doc.merge(Utils.transform_server_api(server_api)) 場合 server_api _doc else Legacy_Hello_DOC end 正しい圧縮状態を維持するには、# コンプレッサーを に設定する必要があります。 サーバーの説明の # 。 Ruby- 2427を参照してください 場合 compressors = [:compressors] doc = doc.merge(圧縮: compressors) end doc end |
#接続します 。 = true
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
このメソッドは、以前にソケットが存在しなかった場合にソケットを設定することで接続クラスをミューテーションします。
ターゲット アドレスへのネットワーク接続を確立します。
接続がすでに確立されている場合、このメソッドは何も実行しません。
151 152 153 154 155 156 157 158 159 160 |
# ファイル 'lib/mongo/ サーバー/monitor/ connection.rb', 行 151 デフォルト 接続します。 発生 ArgumentError, 'モニタリング接続はすでに接続されている' 場合 @socket @socket = add_server_iagnostics 行う address.ソケット(socket_timeout, .merge( connection_address: address, モニター: true )) end true end |
# 切断します!(_options = nil) ⇒ true
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
このメソッドは、閉じが成功した場合、ソケットを nil に設定して接続をミューテーションします。
このメソッドは、 Server::Connections との互換性のためにオプション引数を受け入れます。 ただし、すべてのオプションは無視されます。
接続を切断します。
176 177 178 179 180 181 182 183 184 185 186 |
# ファイル 'lib/mongo/ サーバー/monitor/ connection.rb', 行 176 デフォルト 切断します。( = nil) 場合 ソケット begin ソケット.閉じる ヘルプ 標準エラー nil end @socket = nil end true end |
#dispatch(message) ⇒ Protocol::Message
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
メッセージを送信し、結果を返します。
94 95 96 |
# ファイル 'lib/mongo/ サーバー/monitor/ connection.rb', 行 94 デフォルト ディスパッチ() ディスパッチ_バイト(.直列化.to_s) end |
#dispatch_bytes(bytes, **opts) ⇒ Protocol::Message
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
事前にシリアル化されたメッセージを送信し、その結果を返します。
106 107 108 109 110 111 |
# ファイル 'lib/mongo/ サーバー/monitor/ connection.rb', 行 106 デフォルト ディスパッチ_バイト(バイト, **ops) write_bytes(バイト) read_ response( socket_timeout: ops[:read_socket_timeout] ) end |
#handshake! ⇒ BSON::Document
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
接続済みホストに ハンドシェイク コマンド を送信し、応答を検証します。
193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 |
# ファイル 'lib/mongo/ サーバー/monitor/ connection.rb', 行 193 デフォルト handshake! コマンド = handshake_command( handsake_document( @app_metadata, server_api: [:server_api] ) ) ペイロード = コマンド.直列化.to_s = ディスパッチ_バイト(ペイロード) 結果 = 操作::結果.新着情報() 結果.validate! 応答 = 結果.ドキュメント.最初に set_compressor!(応答) set_hello_ok!(応答) @server_ connection_id = 応答[' connectionId '] 応答 ヘルプ 標準エラー => e msg = 「 #{ address } とのハンドシェイクに失敗しました 」 Utils.警告_bg_例外(msg, e, logger: [:logger], log_prefix: [:log_prefix], bg_error_backtrace: [:bg_error_backtrace]) 発生 end |
# read_ response (**opts) =オブジェクト
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
125 126 127 128 129 130 131 132 133 134 135 136 |
# ファイル 'lib/mongo/ サーバー/monitor/ connection.rb', 行 125 デフォルト read_ response(**ops) 発生 ArgumentError, "接続されていない接続で読み取りを試みているとします#{自己} " ただし、 接続されていますか? add_server_ connection_id 行う add_server_iagnostics 行う プロトコル::メッセージ.逆シリアル化(ソケット, プロトコル::メッセージ::MAX_MESSAGE_SIZE, nil, **ops) end end end |
# socket_timeout =浮動小数点数
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
監視ソケット タイムアウトを返します。
監視接続では、ソケット タイムアウト値として接続タイムアウト値が使用されることに注意してください。 詳細については、「 サーバー検出とモニタリング 」の仕様を参照してください。
82 83 84 |
# ファイル 'lib/mongo/ サーバー/monitor/ connection.rb', 行 82 デフォルト socket_timeout [:connect_timeout] || サーバー::CONNECT_TIMEOUT end |
#write_bytes (バイト) =オブジェクト
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
113 114 115 116 117 118 119 120 121 |
# ファイル 'lib/mongo/ サーバー/monitor/ connection.rb', 行 113 デフォルト write_bytes(バイト) 発生 ArgumentError, "接続されていない接続でディスパッチしようとしているとき ただし、 接続されていますか? add_server_ connection_id 行う add_server_iagnostics 行う ソケット.書込み (write)(バイト) end end end |