Log file table configuration options for geodatabases in Informix

ArcSDE のログ ファイルには、共有、セッションベース、スタンドアロン、セッションベースまたはスタンドアロン ログ ファイルのプールの 4 つのオプションがあります。このトピックでは、それぞれのオプションについて説明します。

DBMS(データベース管理システム)の ArcSDE ログ ファイル テーブルの設定は、ほとんどの場合、デフォルトの設定で十分であり、これが推奨の設定です。

The default log file configuration for Informix is shared ArcSDE log files.

ログ ファイルのオプションは、SERVER_CONFIG テーブルと DBTUNE テーブルの特定のパラメータを使用して設定されます。

これらのテーブルのパラメータは、それぞれ sdeconfig コマンドと sdedbtune コマンドを使用して変更します。これらのコマンドやその他の ArcSDE 管理コマンド ライン ツールは、ArcSDE アプリケーション サーバとともに Esri Customer Care ポータルからダウンロードする必要があります。コマンドの使用法に関する構文や例については、ArcSDE アプリケーション サーバのインストールに付属している『ArcSDE コマンド リファレンス』をご参照ください。

Shared log files

共有ログ ファイルは、同じユーザとして接続するすべてのセッションで共有されます。複数のユーザが同じユーザ アカウントで接続する場合、それらのセッションはすべて、同じログ ファイルのデータ テーブルに対してレコードを挿入または削除します。

共有ログ ファイルを使用する場合

共有ログ ファイルは、同時セッションの数が多く、各セッションが個々の DBMS ユーザ アカウントを使用して接続を行う場合に使用します(これは、ジオデータベースへの接続に推奨される方法です)。

共有ログ ファイルを使用しない場合

同じログインで複数の接続を生成する ArcIMS サービスを使用する場合など、同じログインにより多数の接続が確立される場合は、共有ログ ファイルを使用しないようにします。この場合、競合により SDE_LOGFILE_DATA テーブルへの待ち時間が発生する可能性があります。このような場合は、セッションベース ログ ファイルを使用できます。

共有ログ ファイルのために作成されるテーブル

このオプションで使用されるログ ファイル テーブルは、SDE_LOGFILES と SDE_LOGFILE_DATA です。これらは、ユーザが閾値を超える選択を最初に行ったときに、接続ユーザのスキーマに作成されます。ArcGIS for Desktop では、この閾値は 100 レコードです。

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 は、どちらもユーザのスキーマに残ります。

共有ログ ファイルを使用するための設定

共有ログ ファイル テーブルを作成するには、SERVER_CONFIG テーブルで以下の設定が必要です。

  • MAXSTANDALONELOGS = 0
  • ALLOWSESSIONLOGFILE = FALSE
  • LOGFILEPOOLSIZE = 0

Settings to control storage of shared log file tables and indexes

DBTUNE テーブルの LOGFILE_DEFAULTS キーワードには、ログ ファイル テーブルをデータベースに格納する方法と場所を制御するいくつかのパラメータがあります。共有ログ ファイルを使用するためにこれらのパラメータを設定する必要はありませんが、SDE_LOGFILES および SDE_LOGFILE_DATA テーブルとインデックスをデータベースに格納する方法を変更する場合には、パラメータを設定することができます。

For Informix the following parameters control storage for shared log file tables and indexes:

  • LD_INDEX_DATA_ID
  • LD_INDEX_ROW_ID
  • LD _STORAGE
  • LF_INDEXES
  • LF_STORAGE

For explanations of these parameters, see Informix DBTUNE configuration parameters.

Permissions required for shared log files

ログ ファイル テーブルは接続するユーザが所有するため、ユーザにはテーブルなどの必要なデータ オブジェクトを作成するための権限が付与されている必要があります。これは、ユーザがジオデータベースに読み取り専用アクセスを行う場合、または ArcSDE が読み取り専用に設定されている場合も同様です。これらの権限が付与されていない場合、ユーザには特定のクライアント アプリケーションで閾値のサイズを超える選択セットを最初に作成したときに、エラー メッセージが返されます。ただし、一度ユーザの SDE_LOGFILES テーブルと SDE_LOGFILE_DATA テーブルが作成されたら、ジオデータベース管理者はこれらの権限を取り消すことができます。

例を示します。Ian は都市計画者で、ジオデータベースからデータを選択して自分の作業に関連する分析だけを実行します。したがって、Ian は読み取り専用のユーザと考えられます。ただし、Ian は ArcSDE ジオデータベースに SDE_LOGFILES と SDE_LOGFILE_DATA テーブルを作成するため、ジオデータベースにテーブルを作成できる必要があります。

Ian にテーブルを作成する権限を無期限に付与する代わりに、ジオデータベース管理者はジオデータベースに Ian としてログインし、閾値を超える選択を行ってから、Ian からテーブルを作成する権限を削除することにします。

Grant users RESOURCE permissions to use shared log file tables in Informix.

注意注意:

CONNECT 権限はデフォルトですべてのユーザに割り当てられます。したがって、この権限を明示的に割り当てる必要があるのは、この権限を PUBLIC から削除した場合だけです。

Session-based log files

セッションベース ログ ファイル データ テーブルは単一のセッションに割り当てられ、複数の選択セット(ログ ファイル)を含む場合があります。ログインする各セッションには、選択のための一連のテーブルが必要です。

セッションベース ログ ファイルを使用する場合

セッションベース ログ ファイルは、ジオデータベースに対して同じログインで多数の同時接続を行う場合に使用します。

セッションベース ログ ファイルを使用しない場合

データベースに接続する読み取り専用のユーザがいる場合、セッションベース ログ ファイルは使用できません。

セッション テーブルは、セッションが終了するときにユーザのスキーマから削除されます。つまり、セッション テーブルを必要なときに再作成する必要があり、ユーザにはセッションベース ログ ファイル テーブルを作成できるようにテーブルを作成する権限が必要です。

セッションベース ログ ファイルのために作成されるテーブル

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> テーブルは、接続しているアプリケーションがログ ファイルを削除したときに空になります。テーブル自体はセッションの終了時に削除されます。

共有ログ ファイルを使用するための設定

共有ログ ファイル テーブルを作成するには、SERVER_CONFIG テーブルで以下の設定が必要です。

  • MAXSTANDALONELOGS = 0
  • ALLOWSESSIONLOGFILE = FALSE
  • LOGFILEPOOLSIZE = 0

Settings to control storage of session-based log file tables and indexes

DBTUNE テーブルの LOGFILE_DEFAULTS キーワードには、ログ ファイル テーブルをデータベースに格納する方法と場所を制御するいくつかのパラメータがあります。セッションベース ログ ファイルを使用するためにこれらのパラメータを設定する必要はありませんが、SDE_LOGFILES、SDE_LOGFILE_DATA、および SDE_SESSION テーブルとインデックスをデータベースに格納する方法を変更する場合には、パラメータを設定することができます。

For Informix, the following parameters control storage for session-based log file tables and indexes:

  • LD_INDEX_DATA_ID
  • LD_INDEX_ROW_ID
  • LD_STORAGE
  • LF_INDEXES
  • LF_STORAGE
  • SESSION_INDEX
  • SESSION_STORAGE

See Informix DBTUNE configuration parameters for explanations of these parameters.

Permissions required for session-based log files

セッションベース ログ ファイルは、接続しているセッションを開始したユーザによって所有されます。つまり、ユーザには必要なデータベース オブジェクトを作成する権限が必要です。

All users require RESOURCE permissions to use session-based log file tables in Informix.

Stand-alone log files

スタンドアロン ログ ファイルは、アプリケーションが保存する必要がある選択セットごとに、セッションによって作成されます。

スタンドアロン ログ ファイルが生成するテーブルの数は、すべてのログ ファイル オプションの中で最も多くなります。これらのログ ファイル テーブルを格納する十分な容量を構成する必要があることに注意してください。DBTUNE パラメータの SESSION_STORAGE と SESSION_INDEX は、ほとんどの DBMS でスタンドアロン ログ ファイルのテーブルとインデックスの領域を割り当てます。

スタンドアロン ログ ファイルを使用する場合

すべてのデータベース ユーザにジオデータベースにテーブルを作成する権限を付与しない場合は、スタンドアロン ログ ファイル テーブルを使用できます。

スタンドアロン ログ ファイル テーブルの利点の 1 つは、選択セットを解除したときに、SDE_LOGDATA テーブルの選択レコードが削除されずに切り捨てられることです。切り捨てる(Truncate)操作は削除よりも高速に実行できます。これは、内部的に発行される SQL(Structured Query Language)ステートメントがないためです。ただし、このパフォーマンスに関する利点が、各レイヤで個別にログ ファイル テーブルを作成および保存するコストを上回ることはほとんどありません。

スタンドアロン ログ ファイルを使用しない場合

データベースに接続する読み取り専用のユーザがいる場合、スタンドアロン ログ ファイルは使用できません。SDE_LOGDATA<SDE_ID> テーブルは、接続が終了するときにユーザのスキーマから削除されます。レイヤに対する選択が閾値を超えるたびにテーブルを作成し直す必要があり、ユーザがジオデータベースに接続する場合は、ユーザから CREATE 権限を削除することができません。

スタンドアロン ログ ファイルのために作成されるテーブル

セッションによって作成された閾値を超える選択セットごとに、各レイヤに新しい SDE_LOGDATA<SDE_ID> テーブルが作成されます。このため、SDE_LOGDATA テーブルの競合が発生しません。ただし、新しいテーブルは選択セットごとに作成され、セッションが終了するときに削除されるため、多数の CREATE TABLE と DROP TABLE の SQL ステートメントが生成されます。

SDE_LOGFILES テーブルと SDE_LOGFILE_DATA テーブルは、接続ごとにユーザのスキーマに作成されます。SDE_LOGFILES テーブルには選択セットのプロパティが格納されますが、SDE_LOGFILE_DATA テーブルは使用されません。

レイヤで選択セットが不要になると、SDE_LOGDATA<SDE_ID> テーブルは切り捨てられます。SDE_LOGDATA<SDE_ID> テーブルは、セッションの終了時に削除されます。SDE_LOGFILES テーブルと SDE_LOGFILE_DATA テーブルは、ユーザが接続を終了した後もユーザのスキーマに残りますが、SDE_LOGFILES テーブルは空になります。

スタンドアロン ログ ファイルを使用するために必要な設定(プールなし)

作成可能なスタンドアロン ログ ファイルの数を指定する SERVER_CONFIG テーブルのパラメータは、MAXSTANDALONELOGS です。MAXSTANDALONELOGS のデフォルト設定は 0 なので、スタンドアロン ログ ファイルを使用する場合は、各ユーザが作成可能なスタンドアロン ログ ファイルの数を MAXSTANDALONELOGS に指定する必要があります。

ジオデータベース管理者によって所有されないスタンドアロン ログ ファイル テーブルを作成するには、以下の設定が必要です。

  • MAXSTANDALONELOGS = <ユーザが作成できる SDE_LOGDATA<SDE_ID> テーブルの最大数>
  • LOGFILEPOOLSIZE = 0

スタンドアロン ログ ファイルは、MAXSTANDALONELOGS サーバ コンフィグレーション パラメータで定義されたセッションの割り当てをすべて使い果たすまで使用されます。ユーザがスタンドアロン ログ ファイルを使い果たした場合(つまり、アプリケーションが MAXSTANDALONELOGS で許可されている数よりも多くの選択セット(ログ ファイル)を同時に作成する必要がある場合)、ALLOWSESSIONLOGFILE が TRUE に設定されている場合のみ、ArcSDE はセッションベース ログ ファイルを作成しようとします。セッションベース ログ ファイルを作成できない場合は、共有ログ ファイルの作成を試みます。共有ログ ファイルを作成できず、スタンドアロン ログ ファイルを使い果たした場合は、ArcSDE がエラーを返します。

ログ ファイルの使用順序の例については、「ArcSDE ログ ファイル タイプの使用順序」をご参照ください。

Settings to control storage of stand-alone log file tables and indexes

DBTUNE テーブルの LOGFILE_DEFAULTS キーワードには、ログ ファイル テーブルをデータベースに格納する方法と場所を制御するいくつかのパラメータがあります。スタンドアロン ログ ファイルを使用するためにこれらのパラメータを設定する必要はありませんが、SDE_LOGFILES、SDE_LOGFILE_DATA、および SDE_LOGDATA テーブルとインデックスをデータベースに格納する方法を変更する場合には、パラメータを設定することができます。

For Informix, the following parameters control storage for stand-alone log file tables and indexes:

  • LD_INDEX_DATA_ID
  • LD_INDEX_ROW_ID
  • LD_STORAGE
  • LF_INDEXES
  • LF_STORAGE
  • SESSION_INDEX
  • SESSION_STORAGE

See Informix DBTUNE configuration parameters for explanations of these parameters.

Permissions required for stand-alone log files

スタンドアロン ログ ファイルを使用するユーザ アカウントは、必要なデータベース オブジェクトを作成できなければなりません。共有ログ ファイルと異なり、ログ ファイル テーブルが作成された後にユーザの権限を取り消すことはできません。これは、セッションが十分に大きな選択セットを作成するたびに、ユーザが所有する新しいテーブルがレイヤごとに作成されるためです。

All users require RESOURCE permissions to use stand-alone log file tables in Informix.

Pools of log files owned by the ArcSDE administrator

ジオデータベース管理者は、他のユーザがチェックアウトして使用できるログ ファイルのプールを作成できます。これらのプールは、セッションベースまたはスタンドアロン ログ ファイルのいずれかに使用できます。共有ログ ファイルを ArcSDE ログ ファイル プールからチェックアウトすることはできません。

ArcSDE ログ ファイルのプールを使用することで、データベースにオブジェクトを作成するために必要な権限をユーザに付与する必要がなくなります。

ジオデータベース管理者が所有するログ ファイルのプールを使用しない場合

全体として、ログ ファイルのプールを使用する場合は必要な保守作業が少し増えます。これは、必要なログ ファイル テーブルの数を見積もる必要があり、プールのサイズまたは使用するプールの数の調整を行うためです。ログ ファイル プールのサイズが大きい場合や、ログ ファイル プールの数が多い場合は、パフォーマンスに悪影響が出る可能性があることに注意してください。

ジオデータベース管理者が所有するログ ファイルのプールを使用しない場合

全体として、ログ ファイルのプールを使用する場合は必要な保守作業が少し増えます。これは、必要なログ ファイル テーブルの数を見積もる必要があり、プールのサイズまたは使用するプールの数の調整を行うためです。ログ ファイル プールのサイズが大きい場合や、ログ ファイル プールの数が多い場合は、パフォーマンスに悪影響が出る可能性があることに注意してください。

ジオデータベース管理者が所有するログ ファイルのプールのために作成されるテーブル

ArcSDE 管理者のユーザ スキーマに作成される SDE_LOGPOOL_<table_ID> テーブルの数は、SERVER_CONFIG テーブルの LOGFILEPOOLSIZE パラメータに設定される値によって決まります。たとえば、LOGFILEPOOLSIZE を 5 に設定した場合、ジオデータベース管理者のスキーマには次のテーブルが作成されます。

  • SDE_LOGPOOL_1
  • SDE_LOGPOOL_2
  • SDE_LOGPOOL_3
  • SDE_LOGPOOL_4
  • SDE_LOGPOOL_5

ジオデータベース管理者のスキーマの追加テーブル SDE_LOGFILE_POOL には、ArcSDE セッションの SDE_ID とテーブル ID が記録されます。SDE_LOGPOOL テーブルの名前に含まれる <table_ID> は、SDE_LOGFILE_POOL テーブルの table_ID 列の値に対応します。

セッションベース ログ ファイルのプールを使用する場合は、閾値を超える選択を作成するセッションごとに、SDE_LOGFILE_POOL テーブルにレコードが 1 つ追加され、セッションは SDE_LOGPOOL_<table_ID> テーブルの 1 つに割り当てられます。同じセッションで追加のログ ファイルが作成される場合(たとえば、1 つの ArcMap セッションで 300 レコードの 2 つめの選択セットが作成された場合)、新しいログ ファイル(選択セット)は同じ SDE_LOGPOOL テーブルに追加されます。

ログ ファイルが消去されるときに、セッションにチェックアウトされている SDE_LOGPOOL テーブルは空になります。たとえば、ArcMap セッションで 2 つめの選択セットが解除された場合、SDE_LOGPOOL テーブルから 300 レコードが削除されますが、1 つめの選択セットのレコードは残っています。1 つめの選択セットが解除されるときに、これらのレコードが SDE_LOGPOOL テーブルから削除されます。

スタンドアロン ログ ファイルのプールを使用する場合は、ログ ファイルごと(必要なサイズの選択セットごと)に SDE_LOGFILE_POOL テーブルに新しいレコードが作成され、SDE_LOGPOOL テーブルの 1 つが使用されます。たとえば、1 つの ArcMap セッションで、(1)事業所に関する情報を格納するフィーチャクラスから、食品を提供するライセンスを受けたすべての事業所を選択し、(2)雨水管情報を保存するフィーチャクラスから、食品を提供する事業所から 1 km 以内にあるすべての集水溝を選択した場合、SDE_LOGFILE_POOL テーブルには事業所の選択セット用と集水溝の選択セット用の 2 つのレコードが追加されます。各選択セットは、それぞれに独自の SDE_LOGPOOL テーブルに割り当てられます。

ログ ファイル(選択セット)を解除するときに、対応する SDE_LOGPOOL テーブルが空になります。

ジオデータベース管理者が所有するログ ファイル プールを使用するために必要な設定

SERVER_CONFIG テーブルの中でログ ファイル プールに特に影響する設定は、LOGFILEPOOLSIZE と HOLDLOGPOOLTABLES です。

前のセクションで説明したように、ログ ファイルのプールを作成するには、コンフィグレーション パラメータの LOGFILEPOOLSIZE に、作成する必要があるログ ファイルの数(つまり、SDE_LOGPOOL テーブルの数)を設定します。この数は、サーバに接続するセッションの数と、スタンドアロン ログ ファイルの数(許可されている場合)を反映させてください。

ログ ファイル プールに設定するログ ファイルの合計数を計算するには、次の式を使用します。

  • セッション ログ ファイルが許可されていて、スタンドアロン ログ ファイルが許可されていない場合

    LOGFILEPOOLSIZE = 予想されるセッションの合計

    たとえば、MAXSTANDALONELOGS が 0、ALLOWSESSIONLOGFILE が TRUE に設定されていて、ジオデータベースへの接続が一度に 30 以下であると予想される場合は、LOGFILEPOOLSIZE を 30 に設定します。

  • スタンドアロン ログ ファイルが許可されていて、セッション ログ ファイルが許可されていない場合

    LOGFILEPOOLSIZE = MAXSTANDALONELOGS * 予想されるセッションの合計

    たとえば、MAXSTANDALONELOGS が 5、ALLOWSESSIONLOGFILE が FALSE に設定されていて、ジオデータベースへの接続が一度に 10 以下であると予想される場合は、LOGFILEPOOLSIZE を 5 * 10 = 50 に設定します。

  • スタンドアロン ログ ファイルとセッション ログ ファイルの両方が許可されている場合

    LOGFILEPOOLSIZE = (MAXSTANDALONELOGS + 1) * 予想されるセッションの合計

    たとえば、MAXSTANDALONELOGS が 8、ALLOWSESSIONLOGFILE が true に設定されていて、ジオデータベースへの接続が一度に 20 以下であると予想される場合は、LOGFILEPOOLSIZE を (8 + 1) * 20 = 180 に設定します。

プールを使い果たして、別のログ ファイル テーブルが必要になった場合は、ArcSDE がユーザのスキーマにログ ファイル テーブルを作成しようとします。ログ ファイル テーブルをユーザのスキーマに作成できない場合は、エラーが返されます。

LOGFILEPOOLSIZE パラメータが変更されると、必ず SDE_LOGPOOL_<table_ID> テーブルが作成または削除されます。前の例で、LOGFILEPOOLSIZE を 180 に設定した場合、180 の SDE_LOGPOOL_<table_ID> テーブルが作成されます。LOGFILEPOOLSIZE パラメータを 100 に変更すると、80 のテーブルが削除されます。

ログ ファイル プール パラメータの HOLDLOGPOOLTABLES は、いつ SDE_LOGPOOL テーブルをプールに戻して、他のユーザが使用できるようにするかを決定します。HOLDLOGPOOLTABLES を TRUE(デフォルト値)に設定した場合は、レコードが SDE_LOGFILE_POOL テーブルに残り、SDE_LOGPOOL テーブルは接続中のセッションが終了するまでロックされます。HOLDLOGPOOLTABLES を FALSE に設定すると、選択セットが不要になるたびに、ログ ファイル テーブルは解放され、SDE_LOGFILE_POOL テーブルは空になります。この動作は、スタンドアロンおよびセッションベース ログ ファイルのどちらのプールでも同じです。

Settings to control storage of ArcSDE administrator-owned pools of log file tables and indexes

DBTUNE テーブルの LOGFILE_DEFAULTS キーワードに、SDE_LOGPOOL<SDE_ID> とそのインデックスを格納する方法を制御するパラメータは数個しかありません。

In ArcSDE geodatabases for Informix, the LD_STORAGE, LD_INDEX_ROWID, and LD_INDEX_DATA_ID DBTUNE parameters are used to set storage for the SDE_LOGPOOL<SDE_ID> tables and their indexes.These three parameters also control the storage of the SDE_LOGFILE_DATA table and indexes.See , Informix DBTUNE configuration parameters for explanations of these parameters.

ログ ファイル テーブルのプールを使用するためにこれらのパラメータを設定する必要はありませんが、SDE_LOGPOOL<SDE_ID> テーブルとインデックスをデータベースに格納する方法を変更する場合には、パラメータを設定することができます。

Permissions required for ArcSDE administrator-owned pools of log files

プールのログ ファイル テーブルを使用する場合、データベースに接続し、ジオデータベース管理者スキーマのオブジェクトを使用できることのみがユーザに必要とされます。したがって、ログ ファイル テーブルのプールを使用するために必要な権限は CONNECT 権限のみです。

注意注意:

CONNECT 権限はデフォルトですべてのユーザに割り当てられます。したがって、この権限を明示的に割り当てる必要があるのは、この権限を PUBLIC から削除した場合だけです。

関連トピック

5/10/2014