 |
アプリケーションの実装と実行 |
|
Net Express で作成されたインターネットプログラムの実装
|
 |
次の状態維持ルーチンを使用すると、ユーザとアプリケーションの状態情報を Web サーバに格納するインターネットアプリケーションを作成できます。
状態維持ルーチンの使用方法の詳細については、『サーバ側のプログラミング』 の章の 『アプリケーションの状態の維持』 の項を参照してください。
通常、次のような状態コードのいずれかが状態維持ルーチンから返されます。
| 0 |
呼び出しが成功しました。 |
| 1 |
呼び出しが失敗しました。 |
| 2 |
重複したクライアント ID が見つかりました (割り当て時)。 |
| 3 |
考えられる原因は次のとおりです。
クライアント ID が見つかりません (保存時と復元時)。
レコードを保存/復元/削除しようとしていますが、一致するキーがありません。
その他の内部エラーが発生しました (呼び出し順が正しくないため)。
レコード割り当ての問題。 |
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 |
操作の状態。『状態維持ルーチンの状態』 を参照してください。 |
コメント
このルーチンは次の処理を行います。
- client-length で指定した長さの新しい空レコードを状態情報に割り当てます。
- client-id に渡された値が空白に設定されている場合は、新しい client-id を返して、空レコードを割り当てます。そうでない場合で、client-id
に有効なクライアント識別子が設定されている場合は、このルーチンはそのクライアント識別子を持つ空レコードを割り当てます。
例
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. |
入口
出口
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. |
入口
出口
例
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 |
ここで指定した日数の経過後にクライアント情報を削除します。 |
出口
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 |
状態情報に使用する空レコードの長さ。 |
出口
コメント
このルーチンは、以前に割り当てた 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 で作成されたインターネットプログラムの実装 |
 |