コンバータプログラムのデコード機能のパラメータリスト

アナライザ・プログラム、URIMAP定義、または CICS®の呼び出し側がリクエスト用のコンバータ・プログラム名を指定した場合、リクエスト用のデータを供給するユーザー作成アプリケーション・プログラムの前にデコードが呼び出されます。

パラメーターの要約

次の表では、パラメーターの名前は省略形で示されています。 表中のそれぞれの名前をパラメーターの名前にするには、接頭部として decode_ を付ける必要があります。

表 1. デコード機能のパラメーター
Input decode_ Inout decode_ Output decode_
client_address
client_ipv6_address
client_address_string
client_ipv6_address_string
eyecatcher
entry_count
function
http_version_length
http_version_ptr
method_length
method_ptr
request_header_length
request_header_ptr
resource_length
resource_ptr
user_data_length
user_data_ptr
version
volatile
data_ptr
input_data_len
server_program
user_token
output_data_len
reason
response

パラメーター

decode_client_address
(入力のみ)

decode_client_ipv6_address が指定されていない場合にクライアントの 2 進 IPv4 アドレスに設定する必要がある、フルワードの 32 ビット・フィールド。 decode_client_address では、IPv6 アドレスはサポートされていません。

decode_client_address にゼロ以外の値が設定されている場合は、 この値が使用されて decode_client_ipv6_address の値は無視されます。 そのため、IPv6 アドレッシングを使用する場合は、 decode_client_address の内容をクリアして、 decode_client_ipv6_address の値が使用されるようにする必要があります。

decode_client_ipv6_address
(入力のみ)

IPv6 アドレッシングを使用する場合や、IPv4 アドレッシングを使用していて decode_client_address が指定されていない場合に設定する必要がある、16 バイトのフィールド。 このフィールドは IPv4 アドレスと IPv6 アドレスの両方をサポートしており、 クライアントの 2 進 IPv6 アドレス、または IPv6 形式によるクライアントの IPv4 アドレスに設定されます。 IPアドレスの形式についての詳細は 、IPアドレスをご覧ください。

decode_client_address_string
(入力のみ)

クライアントのドット 10 進数形式の IPv4 アドレス。

decode_client_ipv6_address_string
(入力のみ)

IPv4 アドレスの場合はドット 10 進数形式、IPv6 アドレスの場合はコロン 16 進形式による、クライアントの IP アドレス。 このフィールドの最大長は 39 バイトです。

decode_data_ptr
(入出力)

入力では、クライアントからの要求 (アナライザー・プログラムにより変更されている場合がある) を指すポインター、 または、この呼び出しがエンコード・コンバーター機能からのループバックである場合は、encode_data_ptr の応答データを指すポインター。

出力では、ユーザー作成アプリケーション・プログラム に渡す COMMAREA を指すポインター。 decode_volatile の値が 0 の場合は、このパラメーターを変更しないでください。

decode_entry_count
(入力のみ)

現行 Web 要求でデコード・コンバーターが実行された回数を示すカウント。

decode_eyecatcher
(入力のみ)

長さが 8 のストリング デコードの値は >decode です。

decode_function
(入力のみ)

デコード機能が呼び出されていることを示す、定数値 URP_DECODE に設定されるハーフワード・コード。

decode_http_version_length
(入力のみ)

クライアントがサポートする HTTP のバージョンを識別するストリングの長さ (バイト)。 この要求が HTTP 要求でない場合、または decode_entry_count が 1 より大きければ、この値はゼロです。

decode_http_version_ptr
(入力のみ)

クライアントがサポートする HTTP のバージョンを識別するストリングを指すポインター。 アナライザーが要求のこの部分を変更した場合、 その変更はここで確認できます。 decode_http_version_length がゼロであれば、この値は未定義です。

decode_input_data_len
(入出力)

入力では、これは decode_data_ptr が指す要求データの長さ (バイト) です。

decode_method_length
(入力のみ)

HTTP 要求に指定されたメソッドの長さ (バイト)。 この要求が HTTP 要求でない場合、または decode_entry_count が 1 より大きければ、この値はゼロです。

decode_method_ptr
(入力のみ)

HTTP 要求に指定されたメソッドを指すポインター。 アナライザーが要求のこの部分を変更した場合、 その変更はここで確認できます。 decode_method_length がゼロであれば、この値は未定義です。

decode_output_data_len
(出力のみ)

ポインター decode_data_ptr で示されるユーザー作成アプリケーション・プログラムに渡される COMMAREA の長さ (バイト)。 この出力が設定されていない場合のデフォルト値は 32 KB です。

decode_reason
(出力のみ)

理由コード 。「応答と理由コード 」を参照。

decode_request_header_length
(入力のみ)

HTTP 要求の最初の HTTP ヘッダーの長さ。 この要求が HTTP 要求でない場合、または decode_entry_count が 1 より大きければ、この値はゼロです。

decode_request_header_ptr
(入力のみ)

HTTP 要求の最初の HTTP ヘッダーを指すポインター。 アナライザー・プログラムが要求のこの部分を変更した場合、その変更はここで確認できます。 decode_request_header_length がゼロであれば、この値は未定義です。

decode_resource_length
(入力のみ)

HTTP 要求内の URL のパス構成要素の長さ (バイト)。 この要求が HTTP 要求でない場合、または decode_entry_count が 1 より大きければ、この値はゼロです。

decode_resource_ptr
(入力のみ)

HTTP 要求内の URL のパス構成要素のポインター。 アナライザー・プログラムが要求のこの部分を変更した場合、その変更はここで確認できます。 decode_resource_length がゼロであれば、この値は未定義です。

decode_response
(出力のみ)

応答 。応答と理由コードを参照。

decode_server_program
(入出力)

長さが 8 のストリング 入力時、 wbra_server_programの解析器によって提供された値、または CICSの呼び出し側によって提供された値。 出力では、要求を処理するユーザー作成アプリケーション・プログラムの名前。 アプリケーション・プログラム名は この場所かアナライザー・プログラムで設定する必要があります。 設定しないと、アプリケーション・プログラムは呼び出されません。

decode_user_data_length
(入力のみ)

この HTTP 要求のエンティティー・ボディの長さ (バイト)。 アナライザー・プログラムによってこの値が変更された場合、変更された値はここで確認できます。 エンティティー・ボディが要求の中になければ、長さはゼロです。 この要求が HTTP 要求でなければ、 値はこの要求の長さです。 decode_entry_count が 1 より大きければ、この値はゼロです。

decode_user_data_ptr
(入力のみ)

この HTTP 要求の任意のエンティティー・ボディを指すポインター。 アナライザーが要求のこの部分を変更した場合、 その変更はここで確認できます。 エンティティー・ボディが要求の中になければ、ポインターはゼロです。 要求が HTTP 要求でなければ、 このポインターは decode_data_ptr と同じ値を持ちます。 decode_entry_count が 1 より大きければ、この値は未定義です。

decode_user_token
(入出力)

64 ビットのトークン。 入力時に、アナライザによって wbra_user_token として提供されたユーザートークン、または CICSの呼び出し側によって提供されたユーザートークン。 出力では、 encode_user_token としてエンコード機能に渡されるトークン。

decode_version
(入力)

現在使用されているパラメーター・リストのバージョンを示すハーフワードの 2 進数。 これは、定数値 decode_current_version を使用して設定します。

decode_volatile
(入力)
decode_data_ptr として指定されているデータ域を置換できるかどうかを示す単一文字コード。 使用可能な値は以下のとおりです。
0
データ域は別の COMMAREA の一部であるので、置換することはできません。
1
decode_data_ptr が指しているストレージは、解放して、別サイズの作業域と置換できます。

応答および理由コード

以下のいずれかの値を decode_response で戻す必要があります。
シンボル値 数値 説明
URP_OK 0 処理を続行します。 CICSが要求された場合、実行されます。 そうでいない場合は、コンバーター・プログラムのエンコード機能で処理が続行されます。
URP_EXCEPTION 4 実行するアクションは、以下の理由コードによって決まります。
  • CICS Web サポート
    • 1 (URP_SECURITY_FAILURE)。 CICSは例外トレースエントリ(トレースポイント 455A )を書き込み、メッセージ DFHWB0121 )を発行します。 この要求が HTTP 要求であれば、状況コード 403 が Web クライアントに送信されます。 要求が HTTP 要求でなければ、 応答は送信されず、TCP/IP ソケットはクローズします。
    • 2 (URP_CORRUPT_CLIENT_DATA)。 CICSは例外トレースエントリ(トレースポイント4559)を書き込み、メッセージ DFHWB0121 を発行します。 この要求が HTTP 要求であれば、状況コード 400 が Web クライアントに送信されます。 要求が HTTP 要求でなければ、 応答は送信されず、TCP/IP ソケットはクローズします。
    • その他の任意の値。 CICSは例外トレースエントリ(トレースポイント 455B )を書き込み、メッセージ DFHWB0121 )を発行します。 この要求が HTTP 要求であれば、状況コード 501 が Web クライアントに送信されます。 要求が HTTP 要求でなければ、 応答は送信されず、TCP/IP ソケットはクローズします。
  • CICS ビジネス・ロジック・インターフェース
    • 2 (URP_CORRUPT_CLIENT_DATA)。 CICSは、例外トレースエントリ(トレースポイント4556)を書き込み、メッセージ DFHWB0120 を発行し、呼び出し元に400の応答を返します。
    • その他の任意の値。 CICSは例外トレースエントリ(トレースポイント 455B )を書き込み、メッセージ DFHWB0121 を発行し、呼び出し元に501の応答を返します。
CICSとコンバータプログラムの encode 機能は実行されません。
URP_INVALID 8 CICSとコンバータプログラムの encode 機能は実行されません。
  • CICS Web サポート
    • CICSは例外トレースエントリ(トレースポイント 455C を書き込み、メッセージ DFHWB0121 を発行します。 この要求が HTTP 要求であれば、状況コード 501 が Web クライアントに送信されます。 要求が HTTP 要求でなければ、 応答は送信されず、TCP/IP ソケットはクローズします。
  • CICS ビジネス・ロジック・インターフェース
    • CICSは例外トレースエントリ(トレースポイント 455C を書き込み、メッセージ DFHWB0121 を発行し、呼び出し元に501の応答を返します。
URP_DISASTER 12 CICSとデコーダーのエンコード機能は実行されません。
  • CICS Web サポート
    • CICSは例外トレースエントリ(トレースポイント 455D )を書き込み、メッセージ DFHWB0121 )を発行します。 この要求が HTTP 要求であれば、状況コード 501 が Web クライアントに送信されます。 要求が HTTP 要求でなければ、 応答は送信されず、TCP/IP ソケットはクローズします。
  • CICS ビジネス・ロジック・インターフェース
    • CICSは例外トレースエントリ(トレースポイント 455D )を書き込み、メッセージ DFHWB0121 を発行し、呼び出し元に501の応答を返します。
その他の任意の値   CICSとデコーダーの encode 機能は実行されません。
  • CICS Web サポート
    • CICSは例外トレースエントリ(トレースポイント 455E )を書き込み、メッセージ DFHWB0121 )を発行します。 この要求が HTTP 要求であれば、状況コード 500 が Web クライアントに送信されます。 要求が HTTP 要求でなければ、 応答は送信されず、TCP/IP ソケットはクローズします。
  • CICS ビジネス・ロジック・インターフェース
    • CICSは例外トレースエントリ(トレースポイント 455E )を書き込み、メッセージ DFHWB0121 を発行し、呼び出し元に501の応答を返します。

エラーの場合にさらに情報を提供するために、 decode_reason に 32 ビットの理由コードを設定できます。 decode が返す理由コードに対して、 CICSも CICSも、URP_EXCEPTION に示されている場合を除き、何らかのアクションを起こすことはありません。 decode の呼び出しにより発生するすべてのトレースエントリには、理由コードが含まれています。