エンタープライズ ジオデータベースは、ログ ファイル テーブルを使用して、選択されたレコードのリストを管理します。レコードは、アプリケーションが次のような場合に後で使用できるように、ログ ファイル テーブルに書き込まれます。
- クライアントが、特定のサイズ (ArcMap では 100 レコード、フィーチャ サービスから ObjectID が要求された場合は 1,000 レコード) の選択セットを作成する。
- バージョン対応登録されたジオデータベースにリコンサイルまたはポストする。
- クライアント アプリケーションが、切断された編集のデータをチェック アウトする。
ログ ファイル テーブルには選択されたフィーチャの ObjectID が格納されるため、それらを再表示することが可能です。これにより、情報の解析や処理がより高速になります。
ログ ファイルには、共有、セッションベース、セッションベース ログ ファイルのプールの 3 つのオプションがあります。このトピックでは、それぞれのオプションについて説明します。
DB2 に格納されたジオデータベースは、デフォルトでは共有ログ ファイル テーブルを使用しますが、[ジオデータベース ログファイル テーブルの設定 (Configure Geodatabase Logfile Tables)] ジオプロセシング ツールを使用してログ ファイル テーブル設定を変更できます。
共有ログ ファイル
共有ログ ファイルは、同じユーザーとして接続するすべてのセッションで共有されます。複数のユーザーが同じユーザー アカウントで接続する場合、それらのセッションはすべて、同じログ ファイルのデータ テーブルに対してレコードを挿入または削除します。
共有ログ ファイルを使用する場合
各クライアントとユーザーが異なるデータベース ユーザー アカウントを使用して接続する場合、共有ログ ファイルを使用します。
共有ログ ファイルを使用しない場合
同じログインで複数の接続を生成する ArcGIS Server でフィーチャ サービスを公開する場合など、同じログインにより多数の接続が確立される場合は、共有ログ ファイルを使用しないようにします。同じフィーチャ サービスに対して多くのユーザーが属性クエリを実行すると、競合が発生し、SDE_LOGFILE_DATA テーブルに対する待ち時間が生じます。このような場合は、セッションベース ログ ファイルを使用できます。
共有ログ ファイルのために作成されるテーブル
このオプションで使用されるログ ファイル テーブルは、SDE_LOGFILES と SDE_LOGFILE_DATA です。これらは、ユーザーが閾値を超える選択を最初に行ったときに、接続ユーザーのスキーマに作成されます。
SDE_LOGFILES には、作成される各選択セット (ログ ファイル) に関する情報が格納されます。このテーブルの logfile_name 列と logfile_id 列はログ ファイルの名前を一意に識別し、logfile_id 列はログ ファイル レコードを SDE_LOGFILE_DATA テーブルにリンクします。SDE_LOGFILE_DATA テーブルには、選択したレコードの logfile_data_id とフィーチャ ID が含まれます。
すべてのレコードは、選択セットが解除されるとすぐに削除され、SDE_LOGFILE_DATA テーブルのサイズが大きくなりすぎることを防ぎます。SDE_LOGFILES テーブルは、セッションが終了するときに空になります。SDE_LOGFILE_DATA と SDE_LOGFILES は、どちらもユーザーのスキーマに残ります。
共有ログ ファイルに必要な権限
ログ ファイル テーブルは接続するユーザーが所有するため、ユーザーにはテーブルなどの必要なデータ オブジェクトを作成するための権限が付与されている必要があります。これは、ユーザーがジオデータベースに対する読み取り専用アクセス権限を持っている場合でも必要です。これらの権限が付与されていない場合、ユーザーには特定のクライアント アプリケーションで閾値のサイズを超える選択セットを最初に作成したときに、エラー メッセージが返されます。ただし、一度ユーザーの SDE_LOGFILES テーブルと SDE_LOGFILE_DATA テーブルが作成されたら、ジオデータベース管理者はこれらの権限を取り消すことができます。
たとえば、Ian は都市計画者で、ジオデータベースからデータを選択して自分の作業に関連する分析だけを実行します。したがって、Ian は読み取り専用のユーザーと考えられます。ただし、Ian は都市のエンタープライズ ジオデータベースに SDE_LOGFILES テーブルと SDE_LOGFILE_DATA テーブルを作成するため、ジオデータベースにテーブルを作成できる必要があります。
ジオデータベース管理者は、テーブルを無制限に作成する権限を Ian に付与せず、ジオデータベースにログインして閾値を超える選択を行うように Ian に要求します。次に、ジオデータベース管理者は、Ian のテーブル作成権限を取り消します。
DB2 で共有ログ ファイル テーブルを使用する際に必要な権限は、次のとおりです。
- CONNECT
- CREATETAB
- IMPLICIT_SCHEMA
共有ログ ファイル テーブルおよびインデックスの格納に関する制御 (オプション)
DBTUNE テーブルの LOGFILE_DEFAULTS キーワードには、ログ ファイル テーブルをデータベースに格納する方法と場所を制御するいくつかのパラメーターがあります。共有ログ ファイルを使用するためにこれらのパラメーターを設定する必要はありませんが、SDE_LOGFILES および SDE_LOGFILE_DATA テーブルとインデックスをデータベースに格納する方法を変更する場合には、パラメーターを設定することができます。
DB2 で共有ログ ファイル テーブルとインデックスの格納を制御するパラメーターは、次のとおりです。
- LD_INDEX_DATA_ID
- LD_INDEX_ROW_ID
- LD _STORAGE
- LF_INDEXES
- LF_STORAGE
これらのパラメーターの詳細については、「DB2 のコンフィグレーション パラメーター」をご参照ください。
セッションベース ログ ファイル
セッションベース ログ ファイル データ テーブルは単一のセッションに割り当てられ、複数の選択セット (ログ ファイル) を含む場合があります。ログインする各セッションには、選択のための一連のテーブルが必要です。
セッションベース ログ ファイルを使用する場合
セッションベース ログ ファイルは、ジオデータベースに対して同じログインで多数の同時接続を行う場合に使用します。たとえば、多くのサービスがジオデータベース内のデータを参照している場合、セッションベース ログ ファイルを使用することができます。
セッションベース ログ ファイルを使用しない場合
データベースに接続する読み取り専用のユーザーがいる場合、セッションベース ログ ファイルは使用できません。
セッション テーブルは、セッションが終了するときにユーザーのスキーマから削除されます。つまり、セッション テーブルは、必要なときに再作成する必要があります。そのため、ユーザーは、セッションベース ログ ファイル テーブルを使用できるようなるために、テーブルを作成する権限を必要とします。
セッションベース ログ ファイルのために作成されるテーブル
SDE_LOGFILES、SDE_LOGFILE_DATA、および SDE_SESSION<SDE_ID> の 3 つのテーブルが作成されます。実際には、SDE_LOGFILE_DATA はこの場合は使用されませんが、自動的に作成されます。SDE_LOGFILES テーブルには、選択セットの情報と、SDE_SESSION テーブルの名前に付加されているセッション タグの <SDE_ID> が格納されます。SDE_SESSION テーブルには、選択されたセットのフィーチャ ID とログ ファイル ID が格納されます。
SDE_LOGFILES テーブルと SDE_LOGFILE_DATA テーブルは、ジオデータベースに残ります。SDE_LOGFILES テーブルは、アプリケーションの接続が切断されたときに空になります。SDE_SESSION<SDE_ID> テーブルは、接続しているアプリケーションがログ ファイルを削除したときに空になります。テーブル自体はセッションの終了時に削除されます。
セッションベース ログ ファイルに必要な権限
セッションベース ログ ファイルは、接続しているセッションを開始したユーザーによって所有されます。つまり、ユーザーには必要なデータベース オブジェクトを作成する権限が必要です。
DB2 でセッションベース ログ ファイル テーブルを使用するすべてのユーザーには、以下の権限が必要です。
- CONNECT
- CREATETAB
- IMPLICIT_SCHEMA
セッションベース ログ ファイル テーブルおよびインデックスの格納に関する制御 (オプション)
DBTUNE テーブルの LOGFILE_DEFAULTS キーワードには、ログ ファイル テーブルをデータベースに格納する方法と場所を制御するいくつかのパラメーターがあります。セッションベース ログ ファイルを使用するためにこれらのパラメーターを設定する必要はありませんが、SDE_LOGFILES、SDE_LOGFILE_DATA、および SDE_SESSION テーブルとインデックスをデータベースに格納する方法を変更する場合には、パラメーターを設定することができます。
DB2 でセッションベース ログ ファイル テーブルとインデックスの格納を制御するパラメーターは、次のとおりです。
- LD_INDEX_DATA_ID
- LD_INDEX_ROW_ID
- LD_STORAGE
- LF_INDEXES
- LF_STORAGE
- SESSION_INDEX
- SESSION_STORAGE
これらのパラメーターの詳細については、「DB2 のコンフィグレーション パラメーター」をご参照ください。
ジオデータベース管理者が所有するログ ファイルのプール
ジオデータベース管理者は、他のユーザーがチェックアウトして使用できるセッションベース ログ ファイルのプールを作成できます。共有ログ ファイルをログ ファイル プールからチェックアウトすることはできません。
ログ ファイルのプールを使用することで、データベースにオブジェクトを作成するために必要な権限をユーザーに付与する必要がなくなります。
ログ ファイル プールを使用する場合
ログ ファイルのプールは、各自のスキーマにログ ファイル テーブルを作成する権限をユーザーに付与することができない場合に使用します。ただし、ユーザーにはセッションを作成する権限またはデータベースに接続する権限が必要です。
ログ ファイル プールを使用しない場合
全体として、ログ ファイルのプールを使用する場合は必要な保守作業が少し増えます。これは、必要なログ ファイル テーブルの数を見積もる必要があり、プールのサイズまたは使用するプールの数の調整を行うためです。ログ ファイル プールのサイズが大きい場合や、ログ ファイル プールの数が多い場合は、パフォーマンスに悪影響が出る可能性があることに注意してください。
ログ ファイル プール用に作成されるテーブル
[ジオデータベース ログファイル テーブルの構成 (Configure Geodatabase Logfile Tables)] ツールがジオデータベース管理者のスキーマに作成する SDE_LOGPOOL_<テーブル ID> テーブルの数を指定します。たとえば、テーブル数 5 を指定した場合、ジオデータベース管理者のスキーマには次のテーブルが作成されます。
- SDE_LOGPOOL_1
- SDE_LOGPOOL_2
- SDE_LOGPOOL_3
- SDE_LOGPOOL_4
- SDE_LOGPOOL_5
ジオデータベース管理者のスキーマの追加テーブル SDE_LOGFILE_POOL には、セッションの SDE_ID とテーブル ID が記録されます。SDE_LOGPOOL テーブルの名前に含まれる <テーブル ID> は、SDE_LOGFILE_POOL テーブルの table_ID 列の値に対応します。
ログ ファイル テーブルを必要とするセッションごとに、1 つのレコードが SDE_LOGFILE_POOL テーブルに追加され、各セッションは SDE_LOGPOOL_<テーブル ID> テーブルのうちのいずれかに割り当てられます。同じセッションで追加のログ ファイルが作成される場合 (たとえば、1 つの ArcMap セッションで 300 レコードの 2 つ目の選択セットが作成された場合)、新しいログ ファイル (選択セット) は同じ SDE_LOGPOOL テーブルに追加されます。
ログ ファイルが消去されるときに、セッションにチェックアウトされている SDE_LOGPOOL テーブルは空になります。たとえば、ArcMap セッションで 2 つ目の選択セットが解除された場合、SDE_LOGPOOL テーブルから 300 レコードが削除されますが、1 つ目の選択セットのレコードは残っています。1 つ目の選択セットが解除されるときに、これらのレコードが SDE_LOGPOOL テーブルから削除されます。
ログ ファイル (選択セット) を解除するときに、対応する SDE_LOGPOOL テーブルが空になります。
ログ ファイル プールに必要な権限
プールのログ ファイル テーブルを使用する場合、データベースに接続し、ジオデータベース管理者スキーマのオブジェクトを使用できることのみがユーザーに必要とされます。したがって、ログ ファイル テーブルのプールを使用するために必要な権限は CONNECT 権限のみです。
ログ ファイル プールの格納に関する制御 (オプション)
LOGFILE_DEFAULTS キーワードに、SDE_LOGPOOL<SDE_ID> テーブルとそのインデックスを格納する方法を制御するパラメーターは数個しかありません。
DB2 のエンタープライズ ジオデータベースでは、SDE_LOGPOOL<SDE_ID> テーブルとそのインデックスの格納の設定に、LD_STORAGE、LD_INDEX_ROWID、および LD_INDEX_DATA_ID DBTUNE の各パラメーターを使用します。この 3 つのパラメーターは、SDE_LOGFILE_DATA テーブルとインデックスの格納も制御します。これらのパラメーターの詳細については、「DB2 のコンフィグレーション パラメーター」をご参照ください。
ログ ファイル テーブルのプールを使用するためにこれらのパラメーターを設定する必要はありませんが、SDE_LOGPOOL<SDE_ID> テーブルとインデックスをデータベースに格納する方法を変更する場合には、パラメーターを設定することができます。