前ページへ アプリケーションの実装と実行

Net Express で作成されたインターネットプログラムの実装

次ページへ

第 6 章 状態維持ライブラリルーチン

次の状態維持ルーチンを使用すると、ユーザとアプリケーションの状態情報を Web サーバに格納するインターネットアプリケーションを作成できます。

MF_CLIENT_STATE_ALLOCATE クライアント識別子を割り当てます。
MF_CLIENT_STATE_DELETE クライアント情報を削除します。
MF_CLIENT_STATE_EXPIRY cookie の有効期限フィールドに使用する日付文字列を返します。
MF_CLIENT_STATE_FILE 状態情報を格納するファイルを指定します。
MF_CLIENT_STATE_PURGE 日付の条件が適合した場合にクライアント情報を削除します。
MF_CLIENT_STATE_RESTORE 以前に保存したレコード、または割り当てたレコードを復元します。
MF_CLIENT_STATE_SAVE 状態ファイルの情報を更新します。

状態維持ルーチンの使用方法の詳細については、『サーバ側のプログラミング』 の章の 『アプリケーションの状態の維持』 の項を参照してください。

6.1 状態維持ルーチンの状態

通常、次のような状態コードのいずれかが状態維持ルーチンから返されます。

0 呼び出しが成功しました。
1 呼び出しが失敗しました。
2 重複したクライアント ID が見つかりました (割り当て時)。
3 考えられる原因は次のとおりです。
クライアント ID が見つかりません (保存時と復元時)。
レコードを保存/復元/削除しようとしていますが、一致するキーがありません。
その他の内部エラーが発生しました (呼び出し順が正しくないため)。
レコード割り当ての問題。

6.2 ルーチンのリスト


MF_CLIENT_STATE_ALLOCATE

クライアント識別子を割り当てます。

call "MF_CLIENT_STATE_ALLOCATE" using client-id 
                                      client-length 
                                      server-status
パラメータ
client-id  pic x(30).
client-length  pic x(4) comp-x.
server-status pic x comp-x.
入口
client-id  クライアント識別子。以下のコメントを参照してください。
client-length 状態情報に使用する空レコードの長さ。
出口
client-id  クライアント識別子。以下のコメントを参照してください。
server-status  操作の状態。『状態維持ルーチンの状態』 を参照してください。
コメント

このルーチンは次の処理を行います。

working-storage section. 
... 
01 client-id pic x(30). 
01 client-length pic xxxx comp-x. 
01 state-status pic x comp-x. 
... 
procedure division. 
... 
call "MF_CLIENT_STATE_ALLOCATE" 
     using client-id client-length state-status 
...

MF_CLIENT_STATE_DELETE

既存のクライアント識別子と、関連のクライアント情報を削除します。

Call "MF_CLIENT_STATE_DELETE " using client-id 
                                     server-status
パラメータ
client-id  pic x(30).
server-status pic x comp-x.
入口
client-id  クライアント識別子。
出口
server-status  操作の状態。『状態維持ルーチンの状態』 の項を参照してください。

MF_CLIENT_STATE_EXPIRY

cookie の有効期限フィールドに使用する日付文字列を返します。

Call "MF_CLIENT_STATE_FILE" using date-criteria 
                                  expiry-string
パラメータ
date-criteria  pic x(4) comp-x.
expiry-string pic x(50).
入口
date-criteria  クライアントレコードの期限が切れる日数。
出口
expiry-string cookie の有効期限フィールドに使用される有効期限日。
コメント

expiry-string は、day, dd-month-yyyy hh:mm:ss (グリニッジ標準時)というフォーマットの値を返します。


MF_CLIENT_STATE_FILE

状態情報を格納するためにサーバで使用するファイルを指定します。

Call "MF_CLIENT_STATE_FILE" using filename 
                                  server-status
パラメータ
filename  pic x(255).
server-status pic x comp-x.
入口
filename  ファイル名。
出口
server-status  操作の状態。『状態維持ルーチンの状態』 の項を参照してください。
working-storage section. 
... 
01 state-status pic x comp-x. 
01 state-filename pic x(255) 
value "MF-STATE-SAVE.DAT". 
... 
procedure division. 
... 
call "MF_CLIENT_STATE_FILE" using state-filename 
server-status 
...

MF_CLIENT_STATE_PURGE

指定した日数よりも古いクライアント情報をすべて削除します。

Call "MF_CLIENT_STATE_PURGE" using date-criteria 
                                   server-status
パラメータ
date-criteria  pic x(4) comp-x.
server-status pic x comp-x.
入口
date-criteria  ここで指定した日数の経過後にクライアント情報を削除します。
出口
server-status 操作の状態。『状態維持ルーチンの状態』 の項を参照してください。

MF_CLIENT_STATE_RESTORE

以前に保存または割り当てたレコードで、クライアント識別子が一致するものを復元します。

Call "MF_CLIENT_STATE_RESTORE " using client-id 
                                      client-state 
                                      client-length 
                                      server-status
パラメータ
client-id  pic x(30).
client-state pic x(4) comp-x.
client-length コメント を参照してください。
server-status pic x comp-x.
入口
client-id  クライアント識別子。
client-state 保存する状態情報。コメント を参照してください。
client-length 状態情報に使用する空レコードの長さ。
出口
client-state 保存する状態情報。コメント を参照してください。
server-status 操作の状態。『状態維持ルーチンの状態』 の項を参照してください。
コメント

入口では、client-length はバッファの長さです。出口では、client-length は復元されたデータの長さを返します。データは、入口に指定された client-length に合わせて右端が切り捨てられます。

client-state レコードには、任意の形式を定義できます。client-state のレコードの長さは client-length フィールドで定義します。

working-storage section. 
... 
01 client-id pic x(30). 
01 client-length pic xxxx comp-x. 
01 state-status pic x comp-x. 
01 client-state. 
   03 user-preferences pic x(10). 
   03 user-selection-list pic x(80). 
... 
procedure division. 
... 
call "MF_CLIENT_STATE_RESTORE" 
      using client-id client-state 
      client-length state-status 
...

MF_CLIENT_STATE_SAVE

状態ファイルの情報を更新します。

Call "MF_CLIENT_STATE_SAVE" using client-id 
                                  client-state 
                                  client-length
                                  server-status
パラメータ
client-id  pic x(30).
client-state pic x(4) comp-x.
client-length コメント を参照してください。
server-status pic x comp-x.
入口
client-id  クライアント識別子。
client-state 保存する状態情報。コメント を参照してください。
client-length 状態情報に使用する空レコードの長さ。
出口
server-status 操作の状態。『状態維持ルーチンの状態』 の項を参照してください。
コメント

このルーチンは、以前に割り当てた client-id および client state を保存するか、または、以前に保存した client-id および client state を上書きします。Client-length は更新できます。

client-state レコードには、任意の形式を定義できます。client-state のレコードの長さは client-length フィールドで定義します。

working-storage section. 
... 
01 client-id pic x(30). 
01 client-length pic x(4) comp-x. 
01 state-status pic x comp-x. 
01 client-state. 
   03 user-preferences pic x(10). 
   03 user-selection-list pic x(80). 
... 
procedure division. 
... 
call "MF_CLIENT_STATE_SAVE" 
using client-id client-state 
client-length state-status 
...


Copyright © 2002 Micro Focus International Limited. All rights reserved.
本書、ならびに使用されている固有の商標と商品名は国際法で保護されています。

前ページへ アプリケーションの実装と実行 Net Express で作成されたインターネットプログラムの実装 次ページへ