11.1.2 インメモリー・グラフ・サーバー(PGX)への構成ファイルの指定

インメモリー・グラフ・サーバー構成ファイルは、ServerInstance#startEngine (またはそのバリアントのいずれか)がコールされるたびに、起動時にインメモリー・グラフ・サーバーによって解析されます。構成ファイルへのパスをインメモリー・グラフ・サーバーに書き込むことも、プログラムでそれを指定することもできます。このトピックでは、ファイルを指定するいくつかの方法について説明します

プログラムを使用する場合

すべての構成フィールドがJava列挙として存在します。次に例を示します。

Map<PgxConfig.Field, Object> pgxCfg = new HashMap<>();
pgxCfg.put(PgxConfig.Field.MEMORY_CLEANUP_INTERVAL, 600);

ServerInstance instance = ...
instance.startEngine(pgxCfg);

明示的に設定されていないパラメータはすべて、デフォルト値が使用されます。

ファイルを明示的に使用する場合

マップのかわりに、インメモリー・グラフ・サーバー構成JSONファイルへのパスを書き込むことができます。次に例を示します。

instance.startEngine("path/to/pgx.conf"); // file on local file system
instance.startEngine("classpath:/path/to/pgx.conf"); // file on current classpath

その他すべてのプロトコルについては、JSONファイルへの入力ストリームに直接書き込むことができます。次に例を示します。

InputStream is = ...
instance.startEngine(is);

ファイルを暗黙的に使用する場合

引数を指定せずにstartEngine()をコールした場合、インメモリー・グラフ・サーバー(PGX)は次の場所で構成ファイルを検索し、ファイルが見つかったときに停止します。

  • Javaシステム・プロパティpgx_confで見つかったファイル・パス。例: java -Dpgx_conf=conf/my.pgx.config.json ...

  • 現在のクラスパスのルート・ディレクトリにあるpgx.confというファイル

  • 現在のSystem.getProperty("user.dir")ディレクトリを基準にしたルート・ディレクトリ内のpgx.confという名前のファイル

ノート: 構成の指定はオプションです。特定の構成ファイルでフィールドが見つからない場合や、構成ファイルが指定されていない場合、各フィールドのデフォルト値が使用されます。

埋込みモードでのシェルの使用

シェルが埋込み(ローカル)のインメモリー・グラフ・サーバー(PGX)インスタンスを構成する方法を変更するには、$PGX_HOME/conf/pgx.confを編集します。変更内容は、$PGX_HOME/bin/pgxを次回起動したときに反映されます。

また、次の例に示すように、構成ファイルの場所を変更することもできます。

./bin/opg --pgx_conf path/to/my/other/pgx.conf

システム・プロパティの設定

インメモリー・グラフ・サーバー(PGX)が実行されているJVMに-Dpgx.<FIELD>=<VALUE>引数を書き込むことによって、Javaシステム・プロパティを使用して任意のパラメータを設定できます。システム・プロパティの設定により他の構成が上書きされることに注意してください。次の例では、他の構成の内容に関係なく、最大オフヒープ・サイズを256GBに設定します。

java -Dpgx.max_off_heap_size=256000 ...

環境変数の設定

インメモリー・グラフ・サーバー(PGX)が実行されるJVMの環境変数に「PGX_」を追加することによって、環境変数を使用して任意のパラメータを設定することもできます。環境変数の設定によって他の構成が上書きされることに注意してください。ただし、システム・プロパティと環境変数が同じパラメータに設定されている場合、システム・プロパティの値が使用されます。次の例では、環境変数を使用して最大オフヒープ・サイズを256GBに設定します。

PGX_MAX_OFF_HEAP_SIZE=256000 java ...