27.4 グラフ・クライアント・セッション

グラフ・サーバー(PGX)は、複数の同時クライアントが存在し、各クライアントによってリクエストが共有PGXサーバーに個別に送信されることを前提としています。

各セッションはPGXに独自のワークスペースを所有し、他のセッションから分離されています。

セッション間でグラフやプロパティを共有できます。

セッションの作成

ServerInstanceクラス内の次のメソッドを使用してセッションを作成します。

PgxSession createSession(String source)
PgxSession createSession(String source, long idleTimeout, long taskTimeout, TimeUnit unit)
前述のメソッドは、次の引数を受け入れます。
  • sourceは、クライアントを記述する任意の文字列です。現在、この文字列はロギング目的でのみ使用されます。
  • ユーザーは、新規セッションの作成時に、アイドル・タイムアウト(idleTimeout)およびタスク・タイムアウト(taskTimeout)を指定できます。これらの値が指定されていない場合は、デフォルト値が使用されます。

    グラフ・サーバー(PGX)構成オプションの詳細は、グラフ・サーバー(PGX)エンジンの構成パラメータを参照してください。

import pypgx
session = pypgx.get_session()

セッションの破棄

セッションを破棄するには、単に次をコールします。

session.destroyAsync();
session.destroy();
session.destroy()

管理者は、次のコードを使用して、セッションをIDによって破棄できます。

instance.killSession(sessionId);

ノート:

管理メソッドをデフォルトでコールするには、クライアント/サーバー・モードで特別な認可が必要です。

セッションが破棄されると、PGXでは、そのセッションに関連付けられるすべてのリソースを再利用します。明示的に、すべての一時データは即時に破棄されます。一時データの詳細は、一時データの管理を参照してください。

ただし、PGXでは、特にグラフ・インスタンスが複数のクライアントによって共有されている場合、キャッシュ目的で、ロードされたグラフ・インスタンスをメモリーに保持することを選択できます。要約すると、使用中のクライアントが存在しなくなるまで、すべてのグラフはメモリーに残ります。

ノート:

セッションは、セッションのタイムアウト・メカニズムを介して自動的に破棄できます。グラフ・サーバー(PGX)構成オプションの詳細は、グラフ・サーバー(PGX)エンジンの構成パラメータを参照してください。