Upload
kiyoshi-sawada
View
38
Download
1
Embed Size (px)
Citation preview
EWD 3トレーニング・コース #27
Global ストレージの JavaScript 用の抽象化
-(h) EWD 3 セッション
M/Gateway Developments Ltd.Rob Tweed
訳 : 日本ダイナシステム株式会社 嶋 芳成
2
EWD 3 セッション
• ユーザーが作業中の間だけ永続する、一時的なストレージです• ewd-session モジュールによって制御・管理
されます• これは ewd-document-store モジュールに依存
します
2016/9/21 EWD 3 トレーニング・コース #27
3
EWD 3 セッション
• セッション・オブジェクトには、 ewd-session 自身によって維持される、いくつかの情報が含まれます• ewd-session により、見えないところで利用され
ます
• session.data を利用すれば、開発者はそのアプリケーションに特有のセッション情報を保存し検索することができます
2016/9/21 EWD 3 トレーニング・コース #27
4
EWD 3 セッション
• セッション・データは、セッションが終了すると、自動的に始末されます
2016/9/21 EWD 3 トレーニング・コース #27
5
ewd-xpress 内で Session にアクセスする
• アプリケーションのバックエンドのメッセージ・ハンドラ関数では自動的に利用可能となります
myHandler: function(messageObj, session, send, finished) {...};
2016/9/21 EWD 3 トレーニング・コース #27
6
session.data は DocumentNode オブジェクト
• session.data は、自動生成される DocumentNode オブジェクトです• アプリケーションが処理するメッセージの、ユー
ザー用の Session グローバル・ストレージを指し示します• 開発者は、標準の DocumentNode API を用いる
ことで、 session.data の内容にアクセスし、操作することができます
2016/9/21 EWD 3 トレーニング・コース #27
7
ewd-xpress 内で Session にアクセスするmyHandler: function(messageObj, session, send, finished) {...};
例えば、
- session.data.$('mySessionVariable').value = 'bar';
- var foo = session.data.$('mySessionVariable').value;
- var someObj = session.data.$('mySessionObj').getDocument();
- session.data.$('mySessionObj').setDocument(someObj);
2016/9/21 EWD 3 トレーニング・コース #27
8
土台となる Global ストレージは?• デフォルトでは、次のグローバルにマップさ
れます• CacheTempEWDSession• Caché システムでは、 CacheTemp で始まる名
前のグローバルは、メモリ内のストレージにマップされ、ジャーナルの対象外です• 最も高性能です
• これをオーバーライドして、自身のグローバル名を定義することができます• ewd-xpress の開始ファイル内の
• config.sessionDocumentName
2016/9/21 EWD 3 トレーニング・コース #27
9
ewd-xpress 開始ファイルvar config = { managementPassword: 'keepThisSecret!', serverName: 'New EWD Server', port: 8080, poolSize: 1, database: { type: 'cache', params: { path: 'c:\\InterSystems\\Cache2015-2\\mgr' }, sessionDocumentName: 'mySessionGlobal' }};
var ewdXpress = require('ewd-xpress').master;ewdXpress.start(config);
2016/9/21 EWD 3 トレーニング・コース #27
10
ewd-xpress 開始ファイルvar config = { managementPassword: 'keepThisSecret!', serverName: 'New EWD Server', port: 8080, poolSize: 1, database: { type: 'cache', params: { path: 'c:\\InterSystems\\Cache2015-2\\mgr' }, sessionDocumentName: 'mySessionGlobal' }};
var ewdXpress = require('ewd-xpress').master;ewdXpress.start(config);
2016/9/21 EWD 3 トレーニング・コース #27