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を参照してください。