リモートデータストア
リモートデータストア とは、ローカルの 4Dアプリケーション (4D または4D Server) 上で使用される、別の 4Dアプリケーションの データストア への参照です。
The local 4D application connects to and references the remote datastore through a call to the Open datastore
command.
リモートマシン上で、4D は セッション を開いて、Open datastore
を呼び出したアプリケーションからのリクエストを処理します。 リクエストは内部で REST API を使用し、これには 利用可能なライセンス が必要な場合があります。
Webセッションの使用
When you work with a remote datastore referenced through calls to the Open datastore
command, the connection with the requesting processes is handled via web sessions on the remote machine.
リモートデータストア上で作成される Webセッションは内部的にセッションID によって識別され、4Dアプリケーション上では localID
と紐づいています。 データ、エンティティセレクション、エンティティへのアクセスはこのセッションによって自動的に管理されます。
localID
はリモートデータストアに接続しているマシンにおけるローカルな識別IDです:
- 同じアプリケーションの別プロセスが同じリモートデータストアに接続する場合、
localID
とセッションは共有することができます。 - 同じアプリケーションの別プロセスが別の
localID
を使って同じデータストアに接続した場合、リモートデータストアでは新しいセッションが開始されます。 - 他のマシンが同じ
localID
を使って同じデータストアに接続した場合、新しいセッションが新しい cookie で開始されます。
これらの原則を下図に示します:
セッションの監視
データストアアクセスを管理しているセッションは 4D Server の管理ウィンドウに表示されます:
- プロセス名: "REST Handler: <process name>"
- タイプ: HTTP Server Worker
- セッション:
Open datastore
コマンドに渡されたユーザー名
次の例では、1つのセッション上で 2つのプロセスが実行中です:
セッションの終了
セッションの有効期限 の段落で説明されているように、アクティビティなしにタイムアウト時間が経過すると、4D は自動的にセッションを終了します。 デフォルトのタイムアウト時間は 60分です。 Open datastore コマンドの connectionInfo
パラメーターを指定して、タイムアウト時間を変更することができます。
セッション終了後にリクエストがリモートデータストアに送信された場合、セッションは可能な限り (ライセンスがあり、サーバーが停止していない、など) 再開されます。 ただしセッションが再開しても、ロックやトランザクションに関わるコンテキストは失われていることに留意が必要です (後述参照)。