サーバー セッション
バージョン 3.6 の新機能。
Overview
MongoDB のサーバー セッション、つまり論理セッションは、 因果整合性と再試行可能な書き込みをサポートするためにクライアント セッションで使用される基礎のフレームワークです。
重要
アプリケーションはクライアント セッションをサーバー セッションとのインターフェイスとして使用します。
サーバー セッションはレプリカセットとシャーディングされたクラスターでのみ利用可能です。
コマンド オプション
3.6 以降、MongoDB ドライバーは、未確認の書き込みを除くすべての操作をサーバー セッションに関連付けます。サーバー セッションとの関連付けをサポートするために、すべてのコマンドで次のオプションを使用できます。
重要
mongosh
ドライバーはこれらのオプションをセッション内のコマンドに割り当てます。
オプション | タイプ | 説明 |
---|---|---|
lsid | ドキュメント | コマンドに関連付けられたセッションの一意の ID を指定するドキュメント。 txnNumber を指定する場合は、lsid が必要です。 |
txnNumber | 64 ビット整数 | コマンドのセッション内でコマンドを一意に識別する、厳密に増加する非負の数値。 指定する場合、コマンドには |
ステートメントの配列を受け取る delete
、 insert
、およびupdate
コマンドでは、次のオプションも使用できます。
重要
stmtIds
を手動で設定しないでください。MongoDB は stmtIds
を厳密に増加する非負の数に設定します。
オプション | タイプ | 説明 |
---|---|---|
stmtIds | 32 ビット整数の配列 | 書込み (write) コマンド内のそれぞれの書き込み操作を一意に識別する数値の配列。 |
セッション コマンド
次のコマンドを使用して、MongoDB クラスター全体のサーバー セッションを一覧表示、管理、および強制終了できます。
コマンド | 説明 |
---|---|
指定したサーバー セッションを期限切れにします。 | |
すべてのサーバー セッションを強制終了します。 | |
指定されたパターンに一致するすべてのサーバー セッションを終了します。 | |
指定したサーバー セッションを強制終了します。 | |
アイドル状態のサーバー セッションを更新します。 | |
新しいサーバー セッションを開始します。 |
セッションとアクセス制御
配置で認証/承認が強制される場合、セッションを開始するにはユーザーを認証する必要があり、そのユーザーのみがセッションを使用できます。
$external
認証ユーザー(Kerberos、LDAP、または x.509 ユーザー)でクライアント セッションと因果整合性の保証を使用するには、ユーザー名を 10k バイトより大きくすることはできません。
配置で認証/承認が強制されない場合、作成されたセッションには所有者が存在せず、どの接続でも任意のユーザーが使用できます。ユーザーが認証を行い、認証/承認を強制しない配置のセッションを作成した場合、そのユーザーがセッションを所有します。しかし、任意の接続の任意のユーザーがセッションを使用できます。
配置がダウンタイムなしで認証に移行すると、所有者のいないセッションは使用できなくなります。