Project

General

Profile

エンタープライズオプションの GMCheck (GMCheckRaw) を使ってセッション情報をDBに取り込むが,二重ログオンを禁止するにはどのような処理にすれば良いか?

技術ノート
06/03/2010

[番号]
技術ノート KGTN 2010060302

[現象]
エンタープライズオプションの GMCheck (GMCheckRaw) を使ってセッション情報をDBに取り込むが,二重ログオンを禁止するにはどのような処理にすれば良いか?

[説明]
GMCheck によるセッション情報のDBへの取り込みとGGサーバへのログオンはその仕組み上同期していないため,アプリケーションの初期画面等で以下のチェックを行い,他に同一ユーザが存在する時は 「既に同じユーザでログオンされています」 等のエラーメッセージを表示し,アプリケーションを終了させて下さい.

GMCheck でセッション情報をDBへ取り込む (例えば10秒間隔) .
アプリケーションの初期画面で環境変数 COMPUTERNAME と USERSESSION を参照する.
DB中に同一の COMPUTERNAME と USERSESSION のセッション情報があれば,自分自身のセッション情報なので 「ログオン成功」 と判断する.
DB中に同一の COMPUTERNAME と USERSESSION のセッション情報が無く,かつ同じユーザID(環境変数USERNAMEの値) が存在すれば,他サーバ (または他クライアント) で既にログオンされているため, 「ログオン不可」 と判断する.
何れも存在しない場合は,セッション情報のDBへの取り込みが完了していないので,スリープして再度チェックを行う.
チェックを繰り返しても存在しない場合は,障害と考えられるので 「障害が発生しました.エラーコード:xxxを管理者へ連絡して下さい」 等のエラーメッセージを表示して終了する.

Files

KGTN2010060302.pdf (66.6 KB) kitasp 技術センター, 06/03/2010 09:24 AM