GlossmanZCOM

INDEX

GlossmanZCOMとは?

GlossmanZCOMはGlossmanZ用クライアントライブラリ(COM)です。

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

概要

以下に簡単な例を示します。

Sample.vbs

set o = createobject("GlossmanZCOM") o.open "http://192.168.xxx.xxx/" '//--- '// ex1: Store a value. o("aaa") = "hello!!!" wscript.echo "aaa :" & o("aaa") o.delete("aaa") wscript.echo "aaa :" & o("aaa") '//--- '// ex2: Cached execute of ADODB.Command. set cmd = createobject("adodb.command"): cmd.activeconnection = "Provider=xxx..." cmd.commandtext = "select * from TTest" set rs = o(cmd) '// 1回目はSQL文を実行するが2回目からはキャッシュからrsを取得する do until rs.eof wscript.echo rs("sAAA"): rs.movenext loop o.close() '//--- '// ex3: Distributed library. set o = createobject("GlossmanZCOM.Distributed") o.open "http://192.168.xxx.1/,http://192.168.xxx.99/;http://192.168.xxx.2/,http://192.168.xxx.99/;": o("bbb") = "hello!!!" wscript.echo "bbb :" & o("bbb") o.close()

[console output]

aaa :hello!!! aaa : DB001 DB002 DB003 DB004 DB005 bbb :hello!!!
動作環境
パッケージ内容
GlossmanZCOM.dll
GlossmanZCOMライブラリ本体
注意事項
  1. 本ソフトウェアの利用は良識の範囲内でお願い致します。
  2. 本ソフトウェアの利用による損害の保証はお受けできません。
  3. 本ソフトウェアの利用は楽しんで行っていただきますようお願い致します。
インストール方法
  1. "GlossmanZCOM.dll" をRegsvr32。
リファレンス
[ New Color ] [ Update Color ]
GlossmanZCOM Library
GlossmanZCOM
Interface
IGlossmanZCOM
ProgID
GlossmanZCOM
NOM Name
GlossmanZCOM [default]
GlossmanZCOM.Distributed
Interface
IGlossmanZCOM
ProgID
GlossmanZCOM
NOM Name
GlossmanZCOM.Distributed [default]
IGlossmanZCOM

GlossmanZサーバーと通信します。

プロパティ
Variant Item(Variant* pName) [RW][default]

キャッシュする値をセット、取得します。
Set(...)Get(...) の代わりに利用できます。
pName に ADODB.Command を渡して Item を取得すると Execute(...) が実行されます。

【例1】 o.Item("aaa") = "Hello!" wscript.echo o.Item("aaa") 【例2】 set cmd = createobject("ADODB.Command") cmd.activeConnection = "Provider=..." cmd.commandText = "select * from ..." set rs = o.Item(cmd)

記憶域の名前をセット、取得します。
vbNullString をセットするとサーバーへCookieを送信しません。
空文字列("")をセットするとサーバーへ接続前にクライアント側でユニーク文字列を生成します。

【例】 o.Cookie = "Lucy" o("fruits") = "apple" o.Cookie = "Sky" o("fruits") = "mango" o.Cookie = "Lucy" wscript.echo o("fruits") o.Cookie = "Sky" wscript.echo o("fruits") [出力] apple mango
メソッド
void Open(String sURL)
sURL
GlossmanZサーバーのURL。
戻り値
[なし]

GlossmanZサーバーへ接続します。

【 分散オブジェクト(GlossmanZCOM.Distributed)の場合 】

冗長化され、分散されたサーバー群を指定することができます。
複数台のGlossmanZサーバーを指定することでサーバー不具合時にはコールドスタンバイが自動で利用されます。
また、CookieやsNameを元に記憶値をN台に分散してストアできます。
[sURL の記述方法]
{URL1},{URL1'};{URL2},{URL2'},...;|{PoolNum}
[例]
set o = createobject("GlossmanZCOM.Distributed"): o.Open "http://gz01.local/,http://gz99.local/;http://gz02.local/,http://gz99.local/;|20":
{URL1}
GlossmanZサーバー1台目
{URL1'}
GlossmanZサーバー1台目のコールドスタンバイ
{URL2}
GlossmanZサーバー2台目
{URL2'}
GlossmanZサーバー2台目のコールドスタンバイ
{PoolNum}
各サーバーへの接続をプールする最大数(Default:256)
void Close()
戻り値
[なし]

GlossmanZサーバーへの接続を解除します。

Bool Set(String sName, Variant* pValue, long nTimeout=0)
sName
記憶される値に付ける名前。
pValue
記憶される値。
nTimeout
有効期限(秒)。
戻り値
成功か否か。

GlossmanZ に set コマンドを送ります。

【 分散オブジェクト(GlossmanZCOM.Distributed)の場合 】

Cookieがセットされている場合はCookie値、されていない場合はsName値を元にHash値が計算され、
得られたHash値を元にコマンドを送るサーバーが決定されます。
Bool Get(String sName, Variant* pValue)
sName
記憶されている値に付けられた名前。
pValue [OUT]
記憶されていた値。
戻り値
存在したか否か。

GlossmanZ に get コマンドを送ります。

【 分散オブジェクト(GlossmanZCOM.Distributed)の場合 】

Cookieがセットされている場合はCookie値、されていない場合はsName値を元にHash値が計算され、
得られたHash値を元にコマンドを送るサーバーが決定されます。
void Delete(String sName)
sName
記憶されている値に付けられた名前。
戻り値
[なし]

GlossmanZ に del コマンドを送ります。

【 分散オブジェクト(GlossmanZCOM.Distributed)の場合 】

Cookieがセットされている場合はCookie値、されていない場合はsName値を元にHash値が計算され、
得られたHash値を元にコマンドを送るサーバーが決定されます。
void Noop(String sName="")
sName
記憶されている値に付けられた名前。
戻り値
[なし]

GlossmanZ に nop コマンドを送ります。

【 分散オブジェクト(GlossmanZCOM.Distributed)の場合 】

Cookieがセットされている場合はCookie値、されていない場合はsName値を元にHash値が計算され、
得られたHash値を元にコマンドを送るサーバーが決定されます。
Object Execute(Object pCommand, String sName="", long nTimeout=0)
pCommand
Executeのための準備が整った ADODB.Command オブジェクト。
sName
キャッシュされる ADODB.Recordset に付ける名前。
空文字列("")を指定すると pCommand を元に自動でキーを内部的に生成します。
nTimeout
有効期限(秒)。
戻り値
ADODB.Recordset オブジェクト。

キャッシュされた Recordset を取得します。
まだキャッシュされていない場合には pCommand を Execute してキャッシュを作成します。

【例】 set cmd = createobject("ADODB.Command") cmd.activeConnection = "Provider=..." cmd.commandText = "select * from ..." set rs = o.Execute(cmd) do until rs.EOF '// ... rs.moveNext loop

【 分散オブジェクト(GlossmanZCOM.Distributed)の場合 】

Cookieがセットされている場合はCookie値、されていない場合はsName値を元にHash値が計算され、
得られたHash値を元にコマンドを送るサーバーが決定されます。
更新履歴
2010/03/02
  • Version: 1.0.0.0
2010/04/21
  • Version: 1.0.1.0
  • ExecuteのRecordsetキャッシュが間違う場合がある問題対処
2012/04/10
  • Version: 1.0.2.0
  • Cookieに長文を代入時にクラッシュする問題対処
2012/04/18
  • Version: 1.0.2.4
  • 新ADOによる弊害対処(1.0.2.0&旧OS 時にエラー発生)