クラス: Mongo::Server

継承:
オブジェクト
  • オブジェクト
すべて表示
次による拡張機能。
転送可能
次のことが含まれます。
イベント::PublisherMongoDB ::公開可能
定義:
build/ruby-Driver-v 2.19 /lib/mongo/server.rb
build/ruby-Driver-v 2.19 /lib/mongo/server/monitor.rb,
build/ruby-Driver-v 2.19 /lib/mongo/server/ connection.rb,
build/ruby-Driver-v 2.19 /lib/mongo/server/description.rb,
build/ruby-Driver-v 2 . 19 /lib/mongo/server/app_metadata.rb、
build/ruby-Driver-v 2 . 19 /lib/mongo/server/push_monitor.rb、
build/ruby-Driver-v 2 . 19 /lib/mongo/server/ connection_base.rb、
build/ruby-Driver-v 2 . 19 /lib/mongo/server/接続_プール.rb、
build/ruby-Driver-v 2 . 19 /lib/mongo/server/ connection_ Common.rb、
build/ruby-Driver-v 2 . 19 /lib/mongo/server/monitor/ connection.rb、
build/ruby-Driver-v 2 . 19 /lib/mongo/server/pending_ connection.rb、
build/ruby-Driver-v 2 . 19 /lib/mongo/server/description/features.rb、
build/ruby-Driver-v 2 . 19 /lib/mongo/server/monitor/app_metadata.rb、
build/ruby-Driver-v 2 . 19 /lib/mongo/server/app_metadata/プラットフォーム.rb、
build/ruby-Driver-v 2 . 19 /lib/mongo/server/app_metadata/truncator.rb、
build/ruby-Driver-v 2 . 19 /lib/mongo/server/push_monitor/ connection.rb、
build/ruby-Driver-v 2 . 19 /lib/mongo/server/app_metadata/environment.rb、
build/ruby-Driver-v 2 . 19 /lib/mongo/server/round_drop_time_averager.rb、
build/ruby-Driver-v 2 . 19 /lib/mongo/server/接続_プール/populator.rb、
build/ruby-Driver-v 2 . 19 /lib/mongo/server/description/load_ balancer.rb、
build/ruby-Driver-v 2 。 19 /lib/mongo/server/接続_プール/生成_manager.rb

Overview

スタンドアロン、レプリカセットの一部、または mongos にすることができるサーバー側の単一のサーバーを表します。

以来

  • 2.0.0

名前空間で定義済み

クラス: AppMetadata Connection ConnectionBase ConnectionCommon ConnectionPool Description trigger 、 PendingConnection 、 pusMonitor RoundTryTimeAvelager

定数の概要の削減

CONNECT_TIMEOUT =

接続試行のタイムアウトのデフォルト時間(秒単位)。

以来

  • 2.4.3

10.freeze

Loggableに含まれる定数

ログ可能::PRFIX

インスタンス属性の概要を折りたたむ

Event::Publisherに含まれる属性

#event_listeners

インスタンス メソッドの概要を折りたたむ

Event::Publisherに含まれるメソッド

#push

から含まれるメソッド::public

#publish_cmap_event#publish_event#publish_sam_event

Loggableに含まれるメソッド

#log_debug, #log_error, #log_fatal, #log_info, #log_warn, #logger

コンストラクターの詳細

#初期化(アドレス、クラスター、モニタリング、イベント_リスナー、オプション = {}) =サーバー

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

注:

サーバーは、クラスターの外部で直接インスタンス化されることは ありません 。

新しいサーバー オブジェクトをインスタンス化します。 バックグラウンド更新を開始し、適切なイベントにサブスクライブします。

例:

サーバーを初期化します。

Mongo::Server.new('127.0.0.1:27017', cluster, monitoring, listeners)

パラメーター:

  • address アドレス

    接続するホストとポートのアドレス。

  • クラスター クラスター

    サーバーが属するクラスター。

  • モニタリング 監視

    の監視。

  • event_listenners イベント::リスナー

    イベント リスナー。

  • options ハッシュ (デフォルトは{}です)

    サーバー オプション。

オプション ハッシュ( options ):

  • :mongos ブール値

    内部ドライバーのみで使用します: サーバーをインスタンス化した後に監視するかどうか。

  • :monitoring_io truefalse

    内部ドライバーのみを使用します。 このサーバーによって SDAM 関連の I/O が実行されないようにするには、 false に設定します。 注: このオプションを false に設定すると、サーバーは機能しなくなります。 SDAM 状態移行を手動で呼び出すテストでの使用を目的としています。

  • :populator_io truefalse

    内部ドライバーのみを使用します。 を false に設定すると、サーバーの接続プールでポインター スレッドが作成および開始されなくなります。 これは、ポインターが明示的に必要な場合を除き、mongoDB_io もオフにするテストでの使用を目的としています。 MongoDB_io がオフであるが、popupulator_io がオンの場合、テストの最後にポインターを手動で閉じる必要があります。これは、モニタリングのないクラスターは接続されていないと見なされ、閉じたときに接続プールの入力値をクリーンアップしないためです。

  • :load_ balancer true | false

    このサーバーがロード バランサーであるかどうか。

  • :connect string

    クライアント接続モード

以来

  • 2.0.0



71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/server.rb', 行71

デフォルト 初期化(address, クラスター, モニタリング, event_listenners, options = {})
  @address = address
  @cluster = クラスター
  @monitoring = モニタリング
  options = options.dup
  _monitor = options.削除(:mongos)
  @options = options.freeze
  @event_listenners = event_listenners
  @ connection_id_gen = クラス.新着情報 行う
    次を含みます: id
  end
  @scan_smahour = DistinguishedSemahour.新着情報
  @round_drop_time_averager = Double.新着情報
  @description = 説明.新着情報(address, {},
    load_Balancer: !!@options[:load_ balancer],
    force_load_Balancer: force_load_Balancer?,
  )
  @last_scan = nil
  @last_scan_mongotime = nil
  ただし、 options[:monitoring_io] == false
    @monitor = モニター.新着情報(自己, event_listenners, モニタリング,
      options.merge(
        app_metadata: クラスター.,
        push_monitor_app_metadata: クラスター.,
        heartbeat_Interval: クラスター.heartbeat_Interval,
    ))
    ただし、 _monitor == false
      start_monitoring
    end
  end
  @connected = true
  @Pool_lock = ミューテックス.新着情報
end

インスタンス属性の詳細

# address = string (読み取り専用)

サーバーの構成されたアドレスを返します。

次の値を返します。

  • ( string )

    サーバーの構成されたアドレス。

以来

  • 2.0.0



106
107
108
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/server.rb', 行106

デフォルト address
  @address
end

クラスター(読み取り専用)

クラスター サーバー クラスターを返します。

次の値を返します。

以来

  • 2.0.0



109
110
111
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/server.rb', 行109

デフォルト クラスター
  @cluster
end

# Description = Server:: Description (readonly)

Returns Description モニターが更新するサーバーの説明を返します。

次の値を返します。

以来

  • 2.0.0



123
124
125
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/server.rb', 行123

デフォルト 説明
  @description
end

#モニター= nil |モニター(読み取り専用)

サーバー モニターを返します。 サーバーが MongoDB_io: false オプションで作成されている場合は nil 。

次の値を返します。

  • nil |モニター

    サーバー モニターを監視します。 サーバーが MongoDB_io: false オプションで作成されている場合は nil 。

以来

  • 2.0.0



113
114
115
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/server.rb', 行113

デフォルト モニター
  @monitor
end

#monitoringMonitoring (readonly)

監視 監視を返します。

次の値を返します。

  • 監視

    監視 監視。

以来

  • 2.0.0



119
120
121
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/server.rb', 行119

デフォルト モニタリング
  @monitoring
end

オプション=ハッシュ(読み取り専用)

オプション ハッシュを返します。

次の値を返します。

  • ハッシュ

    オプションは ハッシュです。

以来

  • 2.0.0



116
117
118
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/server.rb', 行116

デフォルト options
  @options
end

#round_drop_time_averager = roundTの間、 RoundTrimAtlas (読み取り専用)

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

ラウンド トリップ時間平均オブジェクトを返します。

次の値を返します。

  • DoubleTimeAvelager

    ラウンドトリップ時間平均オブジェクト。

以来

  • 2.0.0



233
234
235
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/server.rb', 行233

デフォルト round_drop_time_averager
  @round_drop_time_averager
end

# scan_smahour (読み取り専用) →セマフォア(readonly)

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

サーバーが実行中の場合は、モニターによるこのサーバーの即座のスキャンを要求するようシグナルにセカンダリを返します。

次の値を返します。

  • セマフォア

    サーバーが実行中の場合は、モニターによるこのサーバーの即座のスキャンを要求するようにシグナルが送信されます。

以来

  • 2.0.0



229
230
231
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/server.rb', 行229

デフォルト scan_smahour
  @scan_smahour
end

インスタンス メソッドの詳細

# == (その他) === (その他) ==================================================================================

このサーバーは別のサーバーと等しいか?

例:

サーバーは他のサーバーと等しいか?

server == other

パラメーター:

  • その他 オブジェクト

    比較するオブジェクト。

次の値を返します。

  • truefalse

    サーバーが等しい場合。

以来

  • 2.0.0



245
246
247
248
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/server.rb', 行245

デフォルト ==(その他)
  return false ただし、 その他.is_a?(サーバー)
  address == その他.address
end

#クリア_接続_プール (service_id: nil、割り込み_in_use_ connections : false) =オブジェクト

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

パラメーター:

  • :service_id オブジェクト

    指定されたサービス ID のみの接続を閉じます。

  • :中断_in_use_ connections true | false

    クリアされた接続も中断するかどうか。

以来

  • 2.0.0



667
668
669
670
671
672
673
674
675
676
677
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/server.rb', 行667

デフォルト クリア_接続_プール(service_id: nil, insert_in_use_ connections: false)
  @Pool_lock.同期 行う
    # 閉じた後に不明としてマークされているサーバーは、技術的に
    # は誤りですが、状態は意味的に変更されません。
    # ドライバーは歴史的にサーバーをマークすることを許可していた
    いつでも不明な場合は、プールが閉じられた場合でも同じ操作を続行します。
    場合 @Pool & & !@Pool.閉じましたか
      @Pool.切断します。(service_id: service_id, insert_in_use_ connections: insert_in_use_ connections)
    end
  end
end

# clear_description =オブジェクト

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

サーバーの説明をクリアして、不明と見なし、安全に切断できるようにします。

以来

  • 2.0.0



657
658
659
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/server.rb', 行657

デフォルト clear_description
  @description = mongo::サーバー::説明.新着情報(address, {})
end

# close =オブジェクト

以来

  • 2.0.0



294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/server.rb', 行294

デフォルト 閉じる
  場合 モニター
    モニター.停止します。
  end

  @connected = false

  _Pool = nil
  @Pool_lock.同期 行う
    _Pool, @Pool = @Pool, nil
  end

  # TODO: これを Ruby- 3174の _Pool.close に変更します。
  # プールをクリアします。 サーバーが不明でない場合、
  # プールは準備ができたままになります。 バックグラウンド 入力 スレッドを停止します。
  _Pool&.閉じる(retain_ready: true)

  nil
end

#compressorString | nil

非推奨。
注:

圧縮は、接続ごとに個別にネゴシエートされます。

コンプレッサーがサーバー モニターによってネゴシエートされた場合(存在する場合)、

この属性は、サーバー チェックがまだ完了していない場合、および圧縮が否定されていない場合は nil です。

次の値を返します。

  • ( string | nil )

    ネゴシエートされたコンプレッサー。

以来

  • 2.0.0



181
182
183
184
185
186
187
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/server.rb', 行181

デフォルト compressor
  場合 モニター
    モニター.compressor
  else
    nil
  end
end

#接続可能かどうか = truefalse

非推奨。

サーバー選択の仕様が不要になりました。

サーバーへの接続を確立でき、メッセージを送信できるかどうかを判断します。

例:

サーバーは接続可能かどうか。

server.connectable?

次の値を返します。

  • truefalse

    サーバーが接続可能な場合。

以来

  • 2.1.0



261
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/server.rb', 行261

デフォルト 接続可能かどうか; end

#接続済みかどうか= true|false

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

サーバーが接続されているかどうか。

次の値を返します。

  • true|false

    サーバーが接続されているかどうか。

以来

  • 2.7.0



320
321
322
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/server.rb', 行320

デフォルト 接続されていますか?
  @connected
end

#切断します。 = true

このサーバーからドライバーを切断します。

接続プール内のこのサーバーへのすべてのアイドル接続を切断します(存在する場合)。 接続プールが実行中の場合は、接続プールの入力を停止します。 現在チェックアウトされている(つまり、使用中)の接続をすぐに閉じません。このような接続は、それぞれの接続プールに返されると閉じられます。 サーバーのバックグラウンド モニターを停止します。

次の値を返します。

  • ( true )

    常に true

以来

  • 2.0.0



275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/server.rb', 行275

デフォルト 切断します。
  場合 モニター
    モニター.停止します。
  end

  @connected = false

  #現在の CMAP 仕様では、プールがほとんど使用できない必要があります
  : サーバーが不明な場合(または切断されている場合)。
  # ただし、未処理の操作は引き続き完了する必要があります。
  # とその接続は、次のようにプールにチェックインする必要があります
  アプリケーションは必要ありません。 このクリーンアップ要件により、次はできません:
  プールを閉じて、ここで nil に設定します。これは次に再作成されます
  サーバーが検出された時間。
  pool_internal&.クリア

  true
end

force_load_ balancer は? = true | false

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

このサーバーが強制的にロード バランサーであるかどうかを返します。

次の値を返します。

  • true | false

    このサーバーが強制的にロード バランサーであるかどうか。

以来

  • 2.0.0



130
131
132
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/server.rb', 行130

デフォルト force_load_Balancer?
  options[:connect] == :load_ ユーザー分散
end

#hand_auth_failure。 =オブジェクト

認証失敗の処理。

例:

認証が失敗する可能性を処理します。

server.handle_auth_failure! do
  Auth.get(user).(self)
end

次の値を返します。

  • オブジェクト

    ブロック実行の結果。

次の値が発生します。

以来

  • 2.3.0



524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/server.rb', 行524

デフォルト pipeline_auth_failure.
  ノードの数
ヘルプ mongo::エラー::SocketTimeoutError
  # クラスターは遅い可能性があるため、中断しないでください
  発生
ヘルプ mongo::エラー::SocketError, 認証::許可されていない => e
  # 非タイムアウト ネットワーク エラーまたは 認証エラーの場合は、プールをクリアして をマークします
  # トポロジーは不明です
  不明です。(
    生成: e.生成,
    service_id: e.service_id,
    stop_push_monitor: true,
  )
  発生
end

#handstake_failure。 =オブジェクト

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

ハンドシェイクの失敗を処理します。

以来

  • 2.7.0



501
502
503
504
505
506
507
508
509
510
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/server.rb', 行501

デフォルト handschema_failure.
  ノードの数
ヘルプ mongo::エラー::SocketError, mongo::エラー::SocketTimeoutError => e
  不明です。(
    生成: e.生成,
    service_id: e.service_id,
    stop_push_monitor: true,
  )
  発生
end

# heartbeat_frequency =オブジェクト別名: heartbeat_frequency_seconds

非推奨。

以来

  • 2.0.0



159
160
161
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/server.rb', 行159

デフォルト heartbeat_frequency
  クラスター.heartbeat_Interval
end

詳しくは、 を 検査しstring ます

サーバー検査の結果がかなり出力されるようになりました。

例:

サーバー検査を取得します。

server.inspect

次の値を返します。

  • ( string )

    適切な検査string 。

以来

  • 2.0.0



355
356
357
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/server.rb', 行355

デフォルト 検査する
  " #< Mongo::Server:0 x #{ object_id } address = { address .host } } : # {dress .port } } #{ status } > "
end

# last_scan =時間 | nil

last_scan サーバースキャンが最後に完了した時刻を返します。サーバーがまだスキャンされていない場合は nil を返します。

次の値を返します。

  • 時間 | nil

    last_scan サーバーが最後にスキャンされた時刻です。サーバーがまだスキャンされていない場合は nil です。

以来

  • 2.4.0



138
139
140
141
142
143
144
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/server.rb', 行138

デフォルト last_scan
  場合 説明 & & !説明.config.空の場合
    説明.last_update_time
  else
    @last_scan
  end
end

# last_scan_mongotime =浮動小数点数 | nil

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

last_scan_mongotime が最後にサーバースキャンで完了した単調な時間を返します。サーバーがまだスキャンされていない場合は nil を返します。

次の値を返します。

  • (Float | nil)

    last_scan_mongotime サーバースキャンが最後に完了した単調な時間で、サーバーがまだスキャンされていない場合は nil です。

以来

  • 2.0.0



149
150
151
152
153
154
155
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/server.rb', 行149

デフォルト last_scan_mongotime
  場合 説明 & & !説明.config.空の場合
    説明.last_update_monotime
  else
    @last_scan_mongotime
  end
end

#matches_tag_set?(tag_set) ⇒ true, false

提供された タグ がサーバーの タグのサブセット であるかどうかを判断します。

例:

提供されたタグが、サーバーの タグのサブセットであるかどうか。

server.matches_tag_set?({ 'rack' => 'a', 'dc' => 'nyc' })

パラメーター:

  • tag_set ハッシュ

    サーバーの タグと比較する タグセット 。

次の値を返します。

  • truefalse

    提供された タグ がサーバーの タグのサブセット である場合。

以来

  • 2.0.0



461
462
463
464
465
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/server.rb', 行461

デフォルト matches_tag_set?(tag_set)
  tag_set.キー.すべて? 行う |k|
    tags[k] & & tags[k] == tag_set[k]
  end
end

#next_ connection_id =オブジェクト

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

以来

  • 2.0.0



680
681
682
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/server.rb', 行680

デフォルト next_ connection_id
  @ connection_id_gen.next_id
end

プールMongo::Server::ConnectionPool

このサーバーの接続プールを取得します。

例:

サーバーの接続プールを取得します。

server.pool

次の値を返します。

以来

  • 2.0.0



424
425
426
427
428
429
430
431
432
433
434
435
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/server.rb', 行424

デフォルト プール
  場合 不明な場合
    発生 エラー::ServerNotUsable, address
  end

  @Pool_lock.同期 行う
    ops = 接続されていますか? ? options : options.merge(MongoDB_io: false)
    @Pool ||= 接続プール.新着情報(自己, ops).タップ 行う |プール|
      プール.ready
    end
  end
end

プール_内部 = Server::ConnectionPool | nil

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

このサーバーの接続プールを取得するための内部ドライバー メソッド。

poolとは異なり、 pool_internalではプールがまだ存在しない場合、作成されません。

次の値を返します。

以来

  • 2.0.0



445
446
447
448
449
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/server.rb', 行445

デフォルト pool_internal
  @Pool_lock.同期 行う
    @Pool
  end
end

# public_opening_event = Object

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

サーバーを開くイベントを公開します。

以来

  • 2.0.0



340
341
342
343
344
345
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/server.rb', 行340

デフォルト public_opening_event
  public_sdump_event(
    モニタリング::SERVER_OPENING,
    モニタリング::イベント::ServerOnce.新着情報(address, クラスター.トポロジー)
  )
end

#再接続します。 = true

サーバー モニターを再起動します。

例:

サーバー モニターを再起動します。

server.reconnect!

次の値を返します。

  • ( true )

    常に true

以来

  • 2.1.0



475
476
477
478
479
480
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/server.rb', 行475

デフォルト 再接続します。
  場合 options[:monitoring_io] != false
    モニター.再起動します。
  end
  @connected = true
end

再試行_読み取りの回数 =ブール値

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

サーバーが最新の読み取り再試行をサポートしているかどうか。

次の値を返します。

  • ブール値

以来

  • 2.0.0



543
544
545
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/server.rb', 行543

デフォルト retry_reads?
  !!(機能.errors_enabled? & & logical_session_timeout)
end

retry_writes? = truefalse

注:

再試行可能な書き込みは、サーバー バージョン3.6 + とシャーディングされたクラスターまたはレプリカセットでのみ使用できます。

注:

このメソッドの一部の条件は、負荷分散されたトポロジーに対して に対して false を自動的に返します。 このメソッドの条件は常に true である必要があります。負荷分散されたトポロジーは MongoDB 5.0 + でのみ使用でき、スタンドアロンのトポロジーでは使用できないためです。 したがって、再試行書込みが有効になっていると仮定できます。

このサーバーに送信された書き込みを再試行します。

例:

書き込みが再試行されます。

server.retry_writes?

次の値を返します。

  • truefalse

    書込みが再試行される場合。

以来

  • 2.5.0



564
565
566
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/server.rb', 行564

デフォルト retry_writes?
  !!(機能.errors_enabled? & & logical_session_timeout & & !スタンドアロン) || load_ balancer?
end

# start_monitoring =オブジェクト

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

サーバーの監視を開始します。

サーバーがクラスターに含まれるまでの監視を遅延させて、クラスターにサーバーを追加するためにドライバーによって内部的に使用されます。

以来

  • 2.0.0



330
331
332
333
334
335
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/server.rb', 行330

デフォルト start_monitoring
  public_opening_event
  場合 options[:monitoring_io] != false
    モニター.実行します。
  end
end

#statusString

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

サーバーの状態を表す string(例: プライマリ)。

次の値を返します。

  • ( string )

    サーバーの状態を表す string(例: プライマリ)。

以来

  • 2.0.0



362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/server.rb', 行362

デフォルト 状態
  ケース
  次の場合: load_ balancer?
    'LB'
  次の場合: プライマリ?
    プライマリ
  次の場合: セカンダリか
    セカンダリ
  次の場合: スタンドアロン
    'STANDALONE'
  次の場合: アービタ
    'ARBITER'
  次の場合: ghost?
    'GHOST'
  次の場合: その他の場合
    その他の 」
  次の場合: mongos?
    'MONGOS'
  次の場合: 不明な場合
     UNKNOWN 
  else
    Summary メソッドはデバッグによく使用されるため、次は発生しないです:
    : 予想される型のいずれにも一致しない場合の例外
    nil
  end
end

#のサマリー=オブジェクト

注:

この方法は実験的なものであり、変更される可能性があります。

以来

  • 2.7.0



393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/server.rb', 行393

デフォルト 概要
  状態 = 自己.状態 || ''
  場合 replica_set_name
    状態 += " replica_set= #{ replica_set_name } "
  end

  ただし、 モニター&.実行中
    状態 += " NO-MONITORING"
  end

  場合 @Pool
    状態 += " Pool= #{ @group . Summary } "
  end

  address_bit = 場合 address
    " #{アドレス.ホスト} : #{アドレス.ポート} "
  else
    'nil'
  end

  " #< サーバー アドレス= #{ address_bit } #{ status } > "
end

#不明です。 (オプション = {}) =オブジェクト

サーバーを不明としてマークし、関連する SDAM イベント(サーバーの説明が変更された)を公開します。

生成がオプションで渡される場合、渡された生成がサーバーの接続プールの現在の生成よりも古くない場合にのみ、サーバーは不明としてマークされます。

パラメーター:

  • options ハッシュ (デフォルトは{}です)

    オプション。

オプション ハッシュ( options ):

  • : 生成 整数

    エラーを生成した操作に使用された接続の 接続プール生成 。

  • :keep_ connection_Pool true | false

    通常、新しいサーバーの説明が不明な場合、それぞれのサーバーの接続プールがクリアされます。 既存の接続プールを維持するには、このオプションを true に設定します( 4.2 + サーバーでマスター エラーを処理する場合に必要)。

  • :toplog_version (TopologyVersion)

    サーバーが不明としてマークされているエラー応答のトポロジー バージョン。

  • :stop_push_monitor true | false

    サーバーに関連付けられている RustMonor を停止するかどうか(存在する場合)。

  • :service_id オブジェクト

    指定されたサービス ID のみの状態を破棄します。

以来

  • 2.4.0 、 SDAM イベントは バージョン2.7.0として送信されます。



592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/server.rb', 行592

デフォルト 不明です。(options = {})
  プール = pool_internal

  場合 load_ balancer?
    クライアントが負荷分散されたトポロジーにある場合、サーバー(1 つと
    # のみ)がロード バランサーとして起動し、ロード バランサーとして起動します。
    は、無期限に 個のロード バランサーを指定します。 そのため、不明とはマークされていません。
    #
    ただし、このメソッドはサーバーの接続プールもクリアします
    後者が不明とマークされ、この部分が実行する必要がある場合は#
    サーバーがロード バランサーである場合は、 #。
    #
    ロード バランサー サーバーにはサービス ID がない場合も可能です。
    #例えば、への成功した接続がまだない場合は、
    このサーバーはしますが、次の場合にはサーバーを不明にマークできます
    このような接続の数は、確立の途中で失敗しました。
    場合 service_id = options[:service_id]
      プール&.切断します。(service_id: service_id)
    end
    return
  end

  場合 options[: 生成] & & options[: 生成] < プール&.生成
    return
  end

  場合 options[:toplog_version] & & 説明.topic & &
    !options[:toplog_version].gt?(説明.topic)
  次に
    return
  end

  場合 options[:stop_push_monitor]
    モニター&.stop_push_monitor.
  end

  SDAM フローでは、インプレースなしでサーバー上の説明が更新されます
  必要に応じて 個のミューテーションを使用し、SDAM 移行を呼び出します。
  config = {}
  場合 options[:service_id]
    config[' serviceId '] = options[:service_id]
  end
  場合 options[:toplog_version]
    config['topologyVersion'] = options[:toplog_version]
  end
  new_description = 説明.新着情報(address, config,
    load_Balancer: load_ balancer?,
    force_load_Balancer: options[:connect] == :load_ ユーザー分散,
  )
  クラスター.run_sam_flow(説明, new_description, options)
end

# update_description (description) =オブジェクト

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

以来

  • 2.0.0



645
646
647
648
649
650
651
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/server.rb', 行645

デフォルト update_description(説明)
  プール = pool_internal
  場合 プール & & !説明.不明な場合
    プール.ready
  end
  @description = 説明
end

#update_last_scanObject

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

以来

  • 2.0.0



685
686
687
688
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/server.rb', 行685

デフォルト update_last_scan
  @last_scan = 時間.になりました
  @last_scan_mongotime = Utils.MongoDB_time
end

# with_ connection ( connection_ global_id: nil, & ブロック) =オブジェクト

接続を使用してコード ブロックを実行します。このブロックはサーバーのプールからチェックアウトされ、その後チェックインされます。

例:

接続を含む メッセージを送信します。

server.with_connection do |connection|
  connection.dispatch([ command ])
end

次の値を返します。

  • オブジェクト

    ブロック実行の結果。

以来

  • 2.3.0



493
494
495
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/server.rb', 行493

デフォルト with_ connection(connection_ global_id: nil, &ブロック)
  プール.with_ connection(connection_ global_id: connection_ global_id, &ブロック)
end