4.13 ライブラリとしてのグラフ・サーバー(PGX)の使用
PGXをアプリケーションのライブラリとして使用すると、グラフ・サーバー(PGX)インスタンスはJavaアプリケーションと同じJVMで実行され、すべてのリクエストがリモート・プロシージャ呼出しではなく直接ファンクション・コールに変換されます。
この場合、クライアント・アプリケーションと同じマシンにRPM
を使用してグラフ・サーバー(PGX)をインストールする必要があります。グラフ・サーバー・インストールで提供されるシェル実行可能ファイルは、埋込みサーバー・モードでJavaまたはPythonシェルを起動するのに役立ちます。詳細は、Oracle Graph Serverのインストールを参照してください。
これで、次のようにパラメータなしでJavaシェルを起動できるようになります。
cd /opt/oracle/graph
./bin/opg4j
次のようにパラメータを指定せずにPythonシェルを起動することもできます。
cd /opt/oracle/graph/
./bin/opg4py
Javaを使用する場合、ローカルPGXインスタンスへの参照を次のように取得できます。
import oracle.pg.rdbms.*; ... ServerInstance instance = GraphServer.getEmbeddedInstance();
Pythonアプリケーションでは、ローカルPGXインスタンスへの参照を次のように取得できます。
import os os.environ["PGX_CLASSPATH"] = "/opt/oracle/graph/lib/*" import pypgx.pg.rdbms.graph_server as graph_server ... instance = graph_server.get_embedded_instance()
PGXエンジンの起動
PGXは、グラフ・サーバー(PGX)をライブラリとして使用するときに、PGXエンジンを起動する便利なメカニズムを提供します。つまり、グラフ・サーバー(PGX)は自動的に初期化され、ServerInstance.createSession()
が初めてコールされたときに自動的に起動します。ただし、エンジンがその時点でまだ実行されていないものとします。
この暗黙的な初期化の場合、PGXは、デフォルトの場所にあるPGX構成ファイルを使用して自身を構成します。PGX構成ファイルが見つからない場合、PGXは、グラフ・サーバー(PGX)エンジンの構成パラメータに示されているデフォルトのパラメータ値を使用して自身を構成します。
PGXエンジンの停止
グラフ・サーバー(PGX)をライブラリとして使用する場合、終了時にJVMシャットダウン・フックを介してshutdownEngine()
メソッドが自動的にコールされます。具体的には、アプリケーションのデーモン以外のスレッドがすべて終了すると、シャットダウン・フックが起動されます。
temp
ディレクトリがクリアされないため、kill -9
を使用してPGXアプリケーションを強制的に終了しないことをお薦めします。グラフ・サーバー(PGX)エンジンの構成パラメータのtmp_dir
を参照してください。
親トピック: インメモリー・グラフ・サーバー(PGX)の使用