GlossmanZ

INDEX

GlossmanZとは?

GlossmanZはメモリーサーバーです。
様々な情報(データ)を一時的に記憶します。

以下のようなことが可能です。

動作環境
IIS 5.0, 5.1, 6.0, 7.0, 7.5 and later
パッケージ内容
GlossmanZ.dll
ISAPI Extension本体
GlossmanZ.setting
設定ファイル
注意事項
  1. 本ソフトウェアの利用は良識の範囲内でお願い致します。
  2. 本ソフトウェアの利用による損害の保証はお受けできません。
  3. 本ソフトウェアの利用は楽しんで行っていただきますようお願い致します。
インストール方法
IIS 5.0, 5.1
  1. "GlossmanZ.dll" を目的のWebディレクトリのアプリケーションマッピングに登録。
    • "実行ファイル" に "GlossmanZ.dll" を指定。
    • "拡張子" に ".*" を指定。
    • "動詞" に "すべての動詞" を指定。
    • "スクリプトエンジン" にチェック。
    • "ファイルの存在を確認する" のチェックをはずす。
  2. 以上で完了です。動作しない場合は以下をご確認ください。
    • パッケージディレクトリに "IUSR_{xxx}" の読み取り権限があるか。
IIS 6.0
  1. "GlossmanZ.dll" を目的のWebディレクトリのワイルドカードアプリケーションマップに登録。
    • "実行ファイル" に "GlossmanZ.dll" を指定。
    • "ファイルの存在を確認する" のチェックをはずす。
  2. IISの "Web サービス拡張" に "GlossmanZ.dll" を追加し、許可する。
  3. アプリケーションプールを適切に設定する。
    • "リサイクル", "ワーカープロセス" はしないようにする。
    • "アイドルタイムアウト" はしないようにする。
  4. 以上で完了です。動作しない場合は以下をご確認ください。
    • パッケージディレクトリに "NETWORK SERVICE" の読み取り権限があるか。
    • パッケージディレクトリに "IUSR_{xxx}" の読み取り権限があるか。
IIS 7.0, 7.5
  1. "GlossmanZ.dll" を目的のWebディレクトリのハンドラーマッピングに登録。
    • "ワイルドカードスクリプトマップの追加"をクリック。
    • "実行可能ファイル" に "GlossmanZ.dll" を指定。
    • "名前" に "GlossmanZ" などを指定。
  2. IISの "ISAPIおよびCGIの制限" に "GlossmanZ.dll" を追加し、許可する。
  3. アプリケーションプールを適切に設定する。
    • "リサイクル", "定期的な間隔" はしないようにする。
    • "アイドル状態のタイムアウト"はしないようにする。
  4. 以上で完了です。動作しない場合は以下をご確認ください。
    • パッケージディレクトリに "SERVICE" の読み取り権限があるか。
    • パッケージディレクトリに "IUSR" の読み取り権限があるか。
利用方法

GlossmanZサーバーとの通信プロトコルはHTTPです。
各開発言語用HTTPクライアントライブラリを利用してください。

GlossmanZ を "/" にインストールした場合、以下のように利用することができます。

例: "abc"="xyz" を記憶させる場合。
POST /set HTTP/1.0 x-param-name: abc Content-Length: 3 xyz
例: 記憶させてある "abc" を取得する場合。
POST /get HTTP/1.0 cookie: ****** x-param-name: abc Content-Length: 0
例: 記憶させてある "abc" を忘却する場合。
POST /del HTTP/1.0 cookie: ****** x-param-name: abc Content-Length: 0
利用リファレンス
set (覚える)

"name" = "value" 形式の情報(データ)を記憶します。

リクエスト
POST /set HTTP/1.0 x-param-name: {name} [x-param-timeout: {timeout}] content-length: {content-length} [cookie: {area-name}] [content-type: {content-type}] {value}

{name} には記憶名を {value} には記憶値を指定してください。
{timeout} はオプションです。指定すると {value} は {timeout} 秒後にGCされます。
{content-length} は {value} のサイズ(byte)を指定してください。
{area-name} はオプションです。記憶域を分けたい場合には記憶域名を指定してください。
{content-type} はオプションです。指定すると "get" 時に返されます。

情報(データ)は {area-name} 単位で記憶域が作成されて記憶されます。
{area-name} が異なれば同じ{name}にも別々の{value}を記憶できます。

設定ファイルで <Cookie Distribute/> を "true" に指定している場合に {area-name} を省略すると
サーバー側でユニークな {area-name} を生成して新しい記憶域を作成します。

レスポンス
HTTP/1.0 200 OK x-result-code: {result-code} x-result-reason: {result-reason} content-length: 0 [set-cookie: {area-name}]

GlossmanZ が処理を行った結果は HTTP:200 が返った上で以下が返されます。

[成功]
  • {result-code}: 0
  • {result-reason}: OK
[失敗]
  • {result-code}: 1
  • {result-reason}: No Memory
設定ファイルで <Cookie Distribute/> を "true" に指定している場合は {area-name} が返されることがあります。
返された {area-name} は次回の通信に利用してください。

get (思い出す)

"name" = "value" 形式の情報(データ)を取得します。

リクエスト
POST /get HTTP/1.0 x-param-name: {name} content-length: 0 [cookie: {area-name}]

{name} には記憶名を指定してください。
{area-name} はオプションです。特定の記憶域から値を取得したい場合には記憶域名を指定してください。

レスポンス
HTTP/1.0 200 OK x-result-code: {result-code} x-result-reason: {result-reason} content-length: {content-length} [set-cookie: {area-name}] [content-type: {content-type}] {value}

GlossmanZ が処理を行った結果は HTTP:200 が返った上で以下が返されます。

[見つかった]
  • {result-code}: 0
  • {result-reason}: OK
[見つからなかった]
  • {result-code}: 1
  • {result-reason}: Not Found
見つかった場合、"set"時に {content-type} が記憶されている場合は content-type が返され、
{content-length} には {value} のサイズが返ります。

設定ファイルで <Cookie Distribute/> を "true" に指定している場合は {area-name} が返されることがあります。
返された {area-name} は次回の通信に利用してください。

del (忘れる)

"name" = "value" 形式の情報(データ)を忘却します。

リクエスト
POST /del HTTP/1.0 x-param-name: {name} content-length: 0 [cookie: {area-name}]

{name} には記憶名を指定してください。
{area-name} はオプションです。特定の記憶域から値を削除したい場合には記憶域名を指定してください。

レスポンス
HTTP/1.0 200 OK x-result-code: {result-code} x-result-reason: {result-reason} content-length: 0 [set-cookie: {area-name}]

GlossmanZ が処理を行った結果は HTTP:200 が返った上で以下が返されます。

[成功]
  • {result-code}: 0
  • {result-reason}: OK
設定ファイルで <Cookie Distribute/> を "true" に指定している場合は {area-name} が返されることがあります。
返された {area-name} は次回の通信に利用してください。

nop (何もしない)

何もしません。
サービスの生存確認や記憶域タイムアウトの延長、特定記憶域の生成を目的に利用することができます。

リクエスト
POST /nop HTTP/1.0 content-length: 0 [cookie: {area-name}]

{area-name} はオプションです。特定の記憶域にnopしたい場合には記憶域名を指定してください。

レスポンス
HTTP/1.0 200 OK x-result-code: {result-code} x-result-reason: {result-reason} content-length: 0 [set-cookie: {area-name}]

GlossmanZ が処理を行った結果は HTTP:200 が返った上で以下が返されます。

[成功]
  • {result-code}: 0
  • {result-reason}: OK
設定ファイルで <Cookie Distribute/> を "true" に指定している場合は {area-name} が返されることがあります。
返された {area-name} は次回の通信に利用してください。

STAT (状況モニタリング)

サーバーの状況を返します。

リクエスト
STAT / HTTP/1.0

レスポンス
HTTP/1.0 200 OK content-length: 0 X-Memory-Total: {memory-total} X-Counter-CMD-Stat: {counter-cmd-stat} X-Counter-CMD-Get: {counter-cmd-get} X-Counter-CMD-Get_OK: {counter-cmd-get-ok} X-Counter-CMD-Get-NotFound: {counter-cmd-get-notfound} X-Counter-CMD-Set: {counter-cmd-set} X-Counter-CMD-Set-OK: {counter-cmd-set-ok} X-Counter-CMD-Set-NoMemory: {counter-cmd-set-nomemory} X-Counter-CMD-Del: {counter-cmd-del} X-Counter-CMD-Nop: {counter-cmd-nop} X-Counter-CMD-Unknown: {counter-cmd-unknown} X-Counter-ValuesCollect: {counter-valuescollect} X-Counter-ValuesCreate: {counter-valuescreate} X-Counter-ValuesError: {counter-valueserror} X-Counter-ValueCollect: {counter-valuecollect} X-Counter-ValueCreate: {counter-valuecreate} X-Counter-ValueReplace: {counter-valuereplace} X-Counter-ValueDelete: {counter-valuedelete} X-Counter-CookieDistribute: {counter-cookiedistribute}

GlossmanZ が処理を行った結果は HTTP:200 が返った上で以下が返されます。

{memory-total}
メモリー使用量。
{counter-cmd-stat}
コマンド:STAT の回数。
{counter-cmd-get}
コマンド:get の回数。
{counter-cmd-get-ok}
コマンド:get で 0(OK) を返した回数。
{counter-cmd-get-notfound}
コマンド:get で 1(NotFound) を返した回数。
{counter-cmd-set}
コマンド:set の回数。
{counter-cmd-set-ok}
コマンド:set で 0(OK) を返した回数。
{counter-cmd-set-nomemory}
コマンド:set で 1(NoMemory) を返した回数。
{counter-cmd-del}
コマンド:del の回数。
{counter-cmd-nop}
コマンド:nop の回数。
{counter-cmd-unknown}
不明なコマンドの回数。
{counter-valuescollect}
記憶域がガベージコレクトされた回数。
{counter-valuescreate}
記憶域が作成された回数。
{counter-valueserror}
記憶域が作成できなかった回数。
{counter-valuecollect}
値がガベージコレクトされた回数。
{counter-valuecreate}
値が作成された回数。
{counter-valuereplace}
値が上書きされた回数。
{counter-valuedelete}
値が削除された回数。
{counter-cookiedistribute}
ユニーククッキー(area-name)が生成された回数。

設定リファレンス
<GlossmanZ/>

GlossmanZ設定のルート要素。

属性
[なし]
子要素
  • <GC/>
  • <Cookie/>
  • <PathBase/>
  • <Memory/>
<GC/>

記憶域の削除(ガベージコレクト)に関して設定します。

属性
Limit
最終アクセスから何分以上たった記憶域を削除するか指定します。(分)
削除は記憶域(area-name)単位で行われます。
[Default:20]
子要素
[なし]
<Cookie/>

Cookie(area-name)生成に関して設定します。

属性
Distribute
新しく接続してきたクライアントに対してサーバー側でCookie(area-name)を生成するか否かを指定します。
"true" の場合、サーバーは新しいCookie(area-name)を生成して記憶域を用意し "set-cookie:"ヘッダを返します。
"false" の場合、サーバーはクライアントが持ってきた "cookie" を利用して記憶域を用意します。
[Default:false]
子要素
[なし]
<PathBase/>

GlossmanZ がインストールされた URIパス を指定します。

(ex.)"/GlossmanZ/"
[Default:"/"]
属性
[なし]
子要素
[なし]
<Memory/>

メモリーに関して設定します。

属性
Max
GlossmanZが使用するメモリー量の最大を指定します。
0を指定するとOSの許す限り使用します。
[Default:0]
子要素
[なし]
更新履歴
2010/01/25
  • Version: 1.0.0.0
2010/03/02
  • Version: 1.4.1.0
  • メモリー使用量設定の追加
  • STAT機能追加
  • 値の個別タイムアウト機能追加
  • nopコマンド追加
  • <Cookie Distribute/>のデフォルトを true から false に変更