4.11 SERVERPROCEDURECALLメソッド

 クライアントがサーバにサーバ上のプロシジャの実行を要求するメソッドである。サーバは、リクエストで指定されたプロシジャを実行し、その結果をレスポンスとして返す。

4.11.1 リクエスト

4.11.1.1 Request-Line

        Request-Line    =       Method SP Handle SP Frame SP CATP-Version SP 
                                Request-Code SP Request-Phrase CRLF

 (1) Method

        Method          =       "SERVERPROCEDURECALL"

 (2) Handle

 GETHANDLEリクエストによって取得したハンドルを指定する。

 (3) Frame

 フレームには3桁の任意の数字を指定する。但し、このフレームの値はサーバにて参照されない。

 (4) CATP-Version

 クライアントがサポートしている最新のCATPバージョンを指定する。

 (5) Request-Code

 リクエストコードは、リクエストを表すコードである数字3桁の0を指定する。

        Request-Code    =       "000"   ; 数字3桁の0

 (6) Request-Phrase

 リクエストの説明句として、下記のトークンを指定する。

        Request-Phrase  =       "REQUEST"

4.11.1.2 Request-Header

        Request-Header  =       Procedure-name
                                *Argument

 (1) Procedure-name

 サーバのプロシジャ名を指定する。

        Procedure-name  =       "Procedure-name"":"Name CRLF
        Name            =       token

 (2) Argument

 Procedure-nameで示されるプロシジャに渡す引数を指定する。
 尚、引数の定義はサーバの実装による。

4.11.1.3 Object-Header

 (1) Content-Length

 オブジェクトボディのレングスを指定する。

 (2) Encoding

 オブジェクトボディのエンコーディング方式を指定する。オブジェクトボディが存在しない場合は省略しても良い。

4.11.1.4 Object-Body

 Procedure-nameで示されるプロシジャに渡すオブジェクトボディを指定する。
 尚、オブジェクトボディの定義はサーバの実装による。


4.11.2 レスポンス

4.11.2.1 Status-Line

        Status-Line     =       Method SP Handle SP Frame SP CATP-Version SP 
                                Status-Code SP Reason-Phrase CRLF

 (1) Method

 メソッドはクライアントがリクエストラインに指定したメソッドと同じものを指定する。

 (2) Handle

 ハンドルはクライアントがリクエストラインに指定したハンドルと同じものを指定する。

 (3) Frame

 フレームはクライアントがリクエストラインに指定したフレームと同じものを指定する。

 (4) CATP-Version

 CATPバージョンは、サーバで使用されるプロトコールのバージョンを指定する。クライアントがリクエストラインで指定したCATPバージョンが、サーバがサポートしているバージョンよりも古い場合、サーバはそのバージョンをサポートしていることが望まれる。その場合クライアント指定のCATPバージョンをステータスラインに指定する。

 (5) Status-CodeとReason-Phrase

 サーバでのリクエストに対する処理結果を意味する。各コードの詳細並びにReason-Phraseはサーバの実装による。尚、処理結果とはリクエストされたプロシジャの実行結果ではない。それを起動しようとした試みに対する結果である。

  1.  2xx    :       成功
    本メソッドがサーバにおいて正常に処理されたことを意味する。
  2. 4xx     :       クライアントエラー
    リクエストに間違った構文があるか、実行がもともと不可能である。
  3. 5xx     :       サーバエラー
    サーバはリクエストを遂行できなかったことを意味する。

4.11.2.2 Response-Header

        Response-Header =       *Response-info

 (1) Response-info

 プロシジャ名で示されるプロシジャのレスポンス情報を指定する。
 尚、レスポンス情報の定義はサーバの実装による。

4.11.2.3 Object-Header

 (1) Content-Length

 オブジェクトボディのレングスを指定する。

 (2) Encoding

 オブジェクトボディのエンコーディング方式を指定する。オブジェクトボディが存在しない場合は省略しても良い。

4.11.2.4 Object-Body

 オブジェクトボディにはリクエストされたプロシジャの実行結果、または診断レコードを設定する。

        Object-Body             =       Diagnostic-record | Procedure-result-record

 尚、Procedure-result-recordの定義はサーバの実装による。