4D v16

4D Mobileセッションの管理

ホーム

 
4D v16
4D Mobileセッションの管理

4D Mobileセッションの管理    


 

概要  

4D v15 R4以降、プログラミングを使用して4D MobileセッションのIDに4D Server側からアクセスできるようになりました。この機能によって、デベロッパーはセッションに関連した情報をローカルに取得あるいは設定できるようになりました(以下の例題を参照して下さい)。

4D Mobileセッションは通常の4D Webセッションコマンドを使用して管理されます。複数の4D Webコマンドに加え、WEB Get session process countコマンドと[#title id="2779"/]も4D Mobileセッションをサポートします。

4D MobileセッションとWebセッションは二つの異なる種類のセッションです。両者では一部の概念(とコマンド)が共通していますが、プロパティが異なります。主な違いとしては、セッション、プロセス、そしてプロセスコンテキスト間の関係性が挙げられます:

  • Webセッションは単一のWebプロセスとリンクされます(一対一の関係にあります)。自動セッション管理機能により、プロセスコンテキスト(変数のインスタンス、セレクション、等)は再度利用する事が可能です。
  • 4D Mobileセッションは複数のWebプロセスとリンクする事が可能です。それぞれのプロセスコンテキストは、プロセスメソッドの実行終了時に自動的にリセットされます。

結果として、4D Mobile Webプロセス間のセッションに関連した情報を共有するためには、4D Server側での特定の実装をする必要があります。

以下の既存のWebセッション管理コマンドは4D Mobileセッションをサポートします。

WEB CLOSE SESSIONコマンドはsessionID引数にIDを渡された4D Mobileセッションを閉じます。4D Mobileセッションは複数のプロセスを管理できるため、このコマンドは実際には関連した全てのWebプロセスの実行の終了をリクエストします。

WEB Get Current Session IDコマンドは、カレントの4D Mobileセッションに関連付けられたUUIDを返します。

WEB GET SESSION EXPIRATIONコマンドは4D Mobileセッションのcookieに関連した失効情報を返します。

同じcookieは、4D Mobileセッションに関連した全てのプロセスに対して使用されます。

WEB Get session process countコマンドは、特定のセッションに関連した既存のプロセスの数を調べます。

  • 通常のWebセッションに対しては、コマンドは常に1を返します(1Webセッション=1プロセス)
  • 4D Mobileセッションに対しては、コマンドは関連したWebプロセスを全て返します。このコマンドは、例えばこのコンテキストにおいて4D Mobileセッションの全てのプロセスに対してループを実行したい場合などに有効です。

On Web Close Process データベースメソッドは、Webプロセスがその実行を終えようとするたびに4Dによって呼び出されます。これは4D Mobileセッションプロセスを完全にサポートします。このコンテキストにおいて、閉じられたWebプロセス毎に呼び出されるので、4D Mobileセッションプロセス中に生成されたどのようなデータ(変数、セレクション等)も保存する事ができます。

注: 通常のWebセッションについては、Webセッション(つまりWebセッションユニークプロセス)が閉じられるたびに、On Web Close Process データベースメソッドデータベースメソッドが呼び出されます。

例題  

単一の4D Mobileセッションの複数のプロセス間での情報を共有あるいは再利用したい場合、4D MobileセッションのUUIDを使用してセッション関連情報を指定する事ができます。例えば、レコードをクエリしたあと、命名セレクションを4D Serverに保持しておくことで、同じセッション内でのその後のRESTリクエストがそのセレクションに直接アクセスできるようにしたい場合を考えま す。クエリ宣言後に、以下のように書く事ができます:

  //セッションUUIDを含んだインタープロセスセレクションを作成
 COPY NAMED SELECTION([Emp];"<>EmpSel"+WEB Get Current Session ID)
 
  //あとでそのセッションからのセレクションを再利用することが可能
 USE NAMED SELECTION([Emp];"<>EmpSel"+WEB Get Current Session ID)

 
 



参照 


 
プロパティ 

プロダクト: 4D
テーマ: 4D Mobileセッションの管理

 
履歴 

初出: 4D v15 R4

 
ARTICLE USAGE

4D Mobile ( 4D v16)