クラス: Mongo::Server::MongoDB::Connection Private
- 継承:
-
ConnectionCommon
- オブジェクト
- ConnectionCommon
- Mongo::Server::MongoDB::Connection
- 次のことが含まれます。
- ログ記録可能
- 定義:
- build/ruby-Driver-v 2.19 /lib/mongo/server/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 を実行しません(したがって、ソケットもハンドシェイクも作成しません)。接続を呼び出します。 接続オブジェクトのメソッドを使用して、ネットワーク接続を作成します。
58 59 60 61 62 63 64 65 66 67 68 |
# ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/server/monitor/ connection.rb', 行58 デフォルト 初期化(address, = {}) @address = address @options = .dup.freeze ただし、 @app_metadata = [:app_metadata] 発生 ArgumentError, アプリ メタデータは必須 です 。 end @socket = nil @pid = プロセス.pid @compressor = nil @hello_ok = false end |
インスタンス属性の詳細
アドレス= Mongo::Address (読み取り専用)
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
接続するアドレスを返します。
74 75 76 |
# ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/server/monitor/ connection.rb', 行74 デフォルト address @address end |
オプション=ハッシュ(読み取り専用)
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
オプション で渡されたオプションを返します。
71 72 73 |
# ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/server/monitor/ connection.rb', 行71 デフォルト @options end |
# server_ connection_id =整数(読み取り専用)
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
Server_ connection_id サーバー接続 ID を返します。
90 91 92 |
# ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/server/monitor/ connection.rb', 行90 デフォルト server_ connection_id @server_ connection_id end |
インスタンス メソッドの詳細
#check_document ⇒ BSON::Document
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
接続チェックに使用するドキュメントをビルドします。
229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 |
# ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/server/monitor/ connection.rb', 行229 デフォルト checkpoint_document server_api = @app_metadata.server_api || [:server_api] doc = 場合 hello_ok? || server_api _doc = HELLO_DOC 場合 server_api _doc = _doc.merge(Utils.transform_server_api(server_api)) end _doc else Legacy_Hello_DOC end 正しい圧縮状態を維持するには、# コンプレッサーを に設定する必要があります。 サーバーの説明の # 。 Ruby- 2427を参照してください 場合 compressors = [:compressors] doc = doc.merge(圧縮: compressors) end doc end |
#接続します 。 = true
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
このメソッドは、以前にソケットが存在しなかった場合にソケットを設定することで接続クラスをミューテーションします。
ターゲット アドレスへのネットワーク接続を確立します。
接続がすでに確立されている場合、このメソッドは何も実行しません。
158 159 160 161 162 163 164 165 166 167 168 |
# ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/server/monitor/ connection.rb', 行158 デフォルト 接続します。 場合 @socket 発生 ArgumentError, 'モニタリング接続はすでに接続されている' end @socket = add_server_iagnostics 行う address.ソケット(socket_timeout, .merge( connection_address: address, モニター: true)) end true end |
#切断します。 (options = nil) = true
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
このメソッドは、閉じが成功した場合、ソケットを nil に設定して接続をミューテーションします。
このメソッドは、 Server::Connections との互換性のためにオプション引数を受け入れます。 ただし、すべてのオプションは無視されます。
接続を切断します。
184 185 186 187 188 189 190 |
# ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/server/monitor/ connection.rb', 行184 デフォルト 切断します。( = nil) 場合 ソケット ソケット.閉じる ヘルプ nil @socket = nil end true end |
#dispatch(message) ⇒ Protocol::Message
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
メッセージを送信し、結果を返します。
97 98 99 |
# ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/server/monitor/ connection.rb', 行97 デフォルト ディスパッチ() ディスパッチ_バイト(.直列化.to_s) end |
#dispatch_bytes(bytes, **opts) ⇒ Protocol::Message
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
事前にシリアル化されたメッセージを送信し、その結果を返します。
109 110 111 112 113 114 |
# ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/server/monitor/ connection.rb', 行109 デフォルト ディスパッチ_バイト(バイト, **ops) write_bytes(バイト) read_ response( socket_timeout: ops[:read_socket_timeout], ) end |
#handshake! ⇒ BSON::Document
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
接続済みホストに ハンドシェイク コマンド を送信し、応答を検証します。
197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 |
# ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/server/monitor/ connection.rb', 行197 デフォルト handshake! コマンド = handshake_command( handsake_document( @app_metadata, server_api: [:server_api] ) ) ペイロード = コマンド.直列化.to_s = ディスパッチ_バイト(ペイロード) 結果 = 操作::結果.新着情報() 結果.validate! 応答 = 結果.ドキュメント.最初に set_compressor!(応答) set_hello_ok!(応答) @server_ connection_id = 応答[' connectionId '] 応答 ヘルプ => 除外 msg = 「 #{ address } とのハンドシェイクに失敗しました 」 Utils.警告_bg_例外(msg, 除外, logger: [:logger], log_prefix: [:log_prefix], bg_error_backtrace: [:bg_error_backtrace], ) 発生 end |
# read_ response (**opts) =オブジェクト
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
130 131 132 133 134 135 136 137 138 139 140 141 142 143 |
# ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/server/monitor/ connection.rb', 行130 デフォルト read_ response(**ops) ただし、 接続されていますか? 発生 ArgumentError, "接続されていない接続で読み取りを試みているとします#{自己} " end add_server_ connection_id 行う add_server_iagnostics 行う プロトコル::メッセージ.逆シリアル化(ソケット, プロトコル::メッセージ::MAX_MESSAGE_SIZE, nil, **ops) end end end |
# socket_timeout =浮動小数点数
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
監視ソケット タイムアウトを返します。
監視接続では、ソケット タイムアウト値として接続タイムアウト値が使用されることに注意してください。 詳細については、「 サーバー検出とモニタリング 」の仕様を参照してください。
85 86 87 |
# ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/server/monitor/ connection.rb', 行85 デフォルト socket_timeout [:connect_timeout] || サーバー::CONNECT_TIMEOUT end |
#write_bytes (バイト) =オブジェクト
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
116 117 118 119 120 121 122 123 124 125 126 |
# ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/server/monitor/ connection.rb', 行116 デフォルト write_bytes(バイト) ただし、 接続されていますか? 発生 ArgumentError, "接続されていない接続でディスパッチしようとしているとき end add_server_ connection_id 行う add_server_iagnostics 行う ソケット.書込み (write)(バイト) end end end |