IBM Books

解説書


永続的なマクロ関数

永続的なマクロ関数は、 単一トランザクション内でどのマクロ・ブロックが永続的であるのかを定義できるようにして、 Net.Data におけるトランザクション処理をサポートします。 これらの関数を使用して、トランザクションの開始と終了、 そのトランザクションを通じて永続的な HTML ブロック、 そのトランザクション内の変数の効力範囲、 およびトランザクションの変更内容をコミットまたはロールバックするかどうかを定義してください。

DTW_ACCEPT


AIX HP-UX Linux OS/2 OS/390 OS/400 SCO SUN Win NT





X


目的

永続的なマクロを起動するために使用されるトランザクション・ハンドルを定義します。

構文

@DTW_ACCEPT(handle, timeout)

@DTW_ACCEPT(handle)


表 209. DTW_ACCEPT のパラメーター
データ型 パラメーター 用途 説明
ストリング handle IN この永続トランザクションで後続のマクロを起動するために URL で使用されるトランザクション・ハンドルを指定する、 変数またはリテラル・ストリング。
整数 timeout IN このポートをサービスするジョブが応答を待つ時間を秒単位で指定する、 変数またはリテラル・ストリング。 この値は、DTW_STATIC() 関数で指定されたタイムアウト値をオーバーライドします。

戻りコード

表 210. DTW_ACCEPT の戻りコード
戻りコード 説明
-1001 サーバーがメモリーを割り当てるための Net.Data 要求を処理できませんでした。
1001 入力パラメーターにヌル値が含まれています。
1003 関数呼び出しで渡されたパラメーターの数が、 許可される最大数を超えた、 または関数が必要とする最小数より少ない。
1005 関数呼び出しで渡されたパラメーター (ストリング変数とするために必須) が異なる変数型です。
1007 パラメーターに無効な値が含まれています。
8200 マクロ・パーシスタンスが使用可能ではありません。
8201 永続的組み込み関数がシーケンス外で呼び出されました。

使用上の注意

  1. Net.Data では、Web ブラウザーからの応答としてマクロを起動する URL に、 トランザクション・ハンドルがインクルードされている必要があります。Web サーバーに要求が届くと、サーバーはトランザクション・ハンドルを使用して、 トランザクションを処理している CGI プロセスにその要求を発送します。

    トランザクション・ハンドルは、マクロ内の各 HTML ブロックの先頭で呼び出され、 最後の論理ブロックまで実行されなければなりません。 最後の論理ブロックには、DTW_TERMINATE() への呼び出しが含まれています。なんらかのテキストがブラウザーに出力されるまでに DTW_ACCEPT() または DTW_TERMINATE() への呼び出しが見つからない場合には、 Net.Data エラーが発生します。

  2. このページのタイムアウト値として、 @DTW_STATIC() 関数で指定されたタイムアウト値をオーバーライドする値を指定することができます。 Web サーバーは、ユーザーがこの要求に応答するのを、 指定された時間 (秒単位) だけ待ちます。

  3. マクロが永続的な状態になっていないときにこの関数が呼び出されると、 Net.Data エラーが発生します。

  4. トランザクション・ハンドルを含む URL は、 押しボタンからのアクションとしてコーディングすることも、ブラウザーに表示されたページ上のハイパーテキスト・リンクとしてコーディングすることもできます。

例 1:

%DEFINE handle = ""
@DTW_RTVHANLDE(handle)
 
%HTML(REPORT) {
@DTW_ACCEPT(handle)
 ...
%}

DTW_COMMIT


AIX HP-UX Linux OS/2 OS/390 OS/400 SCO SUN Win NT





X


目的

コミットメント制御されているリソースに対して最後のコミットメント境界以降に行われた、 保留中の変更を永続的なものにし、新規コミットメント境界を設定します。

構文

@DTW_COMMIT()

なし。

戻りコード

表 211. DTW_COMMIT の戻りコード
戻りコード 説明
1003 関数呼び出しで渡されたパラメーターの数が、 許可される最大数を超えた、 または関数が必要とする最小数より少ない。

例 1: コミットを指定します。

@DTW_COMMIT()
%HTML(report){
%}
 

DTW_ROLLBACK


AIX HP-UX Linux OS/2 OS/390 OS/400 SCO SUN Win NT





X


目的

最後のコミットメント境界を現行コミットメント境界として再設定します。 Net.Data が実行されているプロセスに関連して、 コミットメント制御されているリソースに対して最後のコミットメント境界以降に行われたすべての変更が、 バックアウトされます。

構文

@DTW_ROLLBACK()

なし。

戻りコード

表 212. DTW_ROLLBACK の戻りコード
戻りコード 説明
1003 関数呼び出しで渡されたパラメーターの数が、 許可される最大数を超えた、 または関数が必要とする最小数より少ない。

例 1: ロールバックを指定します。

@DTW_ROLLBACK() 
%HTML(report){
%}

DTW_RTVHANDLE


AIX HP-UX Linux OS/2 OS/390 OS/400 SCO SUN Win NT





X


目的

スレッド情報、タイム・スタンプ、 および現行ユーザーの組み合わせに基づいて計算される、 複数の別個の起動を通じてこのマクロに固有なトランザクション・ハンドルを生成して戻します。

構文

@DTW_RTVHANDLE(handle)


表 213. DTW_RTVHANDLE のパラメーター
データ型 パラメーター 用途 説明
ストリング handle OUT 現行の永続マクロ用の固有なトランザクション・ハンドルが入る変数。

戻りコード

表 214. DTW_RTVHANDLE の戻りコード
戻りコード 説明
-1001 サーバーがメモリーを割り当てるための Net.Data 要求を処理できませんでした。
1003 関数呼び出しで渡されたパラメーターの数が、 許可される最大数を超えた、 または関数が必要とする最小数より少ない。
1005 関数呼び出しで渡されたパラメーター (ストリング変数とするために必須) が異なる変数型です。
1006 関数呼び出しにおいて、出力パラメーターとするために必須であるパラメーターにリテラル・ストリングが渡されました。

使用上の注意

トランザクション・ハンドルを使用すると、 永続的なトランザクションの一部として指定された URL が HTTP サーバーに固有なものになり、 有効な要求として確実に識別されるようになります。

例 1: トランザクション・ハンドルを検索するために使用される handle 変数を定義します。

%DEFINE handle = ""
@DTW_RTVHANLDE(handle)

DTW_STATIC


AIX HP-UX Linux OS/2 OS/390 OS/400 SCO SUN Win NT





X


目的

マクロ全体が永続的であることを示します。

構文

@DTW_STATIC(timeout)

@DTW_STATIC()


表 215. DTW_STATIC のパラメーター
データ型 パラメーター 用途 説明
整数 timeout IN このトランザクションを処理するプロセスが応答を待つ時間を秒単位で指定する、 変数またはリテラル・ストリング。

戻りコード

表 216. DTW_STATIC の戻りコード
戻りコード 説明
-1001 サーバーがメモリーを割り当てるための Net.Data 要求を処理できませんでした。
1001 入力パラメーターにヌル値が含まれています。
1003 関数呼び出しで渡されたパラメーターの数が、 許可される最大数を超えた、 または関数が必要とする最小数より少ない。
1005 関数呼び出しで渡されたパラメーター (ストリング変数とするために必須) が異なる変数型です。
1007 パラメーターに無効な値が含まれています。
8202 パーシスタンスを使用可能にできません。

使用上の注意

  1. DTW_STATIC は、マクロ内の最初のステートメントでなければなりません。マクロ内でこの関数呼び出し以降に定義されたすべての変数は、 明示的に別の指定が行われていない限り、 DTW_TERMINATE() が呼び出されるかあるいはプロセスが終了するまで、 複数のマクロ起動を通じて永続します。

  2. 関数呼び出しで秒単位のタイムアウト値を指定して、 Net.Data が実行されているプロセスがブラウザーからの応答を待つ時間を指示することができます。タイムアウト値が満了するとプロセスは終了し、コミットメント制御されているリソースに対して、 最後のコミットメント境界以降に行われたすべての変更がロールバックされます。

  3. 後続の @DTW_ACCEPT() 呼び出しでタイムアウト値が指定されていると、 Net.Data はこの値を後続の呼び出しで指定された値によってオーバーライドします。 この呼び出しでも後続の @DTW_ACCEPT() 呼び出しでもタイムアウト値が指定されていない場合、 Web サーバーのデフォルト・タイムアウト値が使用されます。

例 1: タイムアウト値を 60 に指定する DTW_STATIC() への呼び出し

@DTW_STATIC("60")

DTW_TERMINATE


AIX HP-UX Linux OS/2 OS/390 OS/400 SCO SUN Win NT





X


目的

永続的なトランザクションを終了します。 コミットメント制御されているリソースに対して最後のコミットメント境界以降に行われた、 すべての変更を永続的なものにします。

構文

@DTW_TERMINATE()

なし。

戻りコード

表 217. DTW_TERMINATE の戻りコード
戻りコード 説明
-1001 サーバーがメモリーを割り当てるための Net.Data 要求を処理できませんでした。
1003 関数呼び出しで渡されたパラメーターの数が、 許可される最大数を超えた、 または関数が必要とする最小数より少ない。
8200 マクロ・パーシスタンスが使用可能ではありません。
8201 永続的組み込み関数がシーケンス外で呼び出されました。

使用上の注意

  1. DTW_TERMINATE 関数は、永続的なトランザクション内で、 何らかのテキストがブラウザーに出力される前に、論理的な最終 HTML ブロックの先頭で呼び出されます。この関数の前に何らかのテキスト出力がブロック内で行われると、Net.Data エラーが発生します。アプリケーションの書き方によっては、論理的な最終 HTML ブロックが複数存在する場合がありますので、 注意してください。

  2. マクロが永続的な状態になっていないときにこの関数が呼び出されると、 Net.Data エラーが発生します。

例 1: 永続的なトランザクションを終了します。

%HTML(QUIT){
@DTW_TERMINATE()
 ...
%}


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]