Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (日本語) » SQL Anywhere サーバ - SQL リファレンス » システム・オブジェクト » システム・プロシージャ » システム・プロシージャのアルファベット順リスト

 

sa_set_http_option システム・プロシージャ

Web サービスによる結果内の HTTP オプションの設定を許可します。

構文
sa_set_http_option( 
optname, 
val 
 )
引数
  • optname   HTTP オプションのいずれかの名前を含む文字列を指定する CHAR(128) パラメータ。

  • val   指定されたオプションに設定する値を指定する LONG VARCHAR パラメータ。

備考

Web サービスを処理する文またはプロシージャ内でこのプロシージャを使用して、HTTP 結果セット内のオプションを設定します。

サポートされるオプションは次のとおりです。

  • CharsetConversion   このオプションを使用して、結果セットをデータベースの文字セットからクライアントの文字セットに自動的に変換するかどうかを制御します。指定できる値は、ON と OFF だけです。デフォルト値は ON です。自動文字セット変換の使用を参照してください。

  • AcceptCharset   このオプションを使用して、XML、SOAP、HTTP の各 Web サービスの応答で使用する文字セットを指定します。このオプションの構文は、RFC2616 Hypertext Transfer Protocol の HTTP Accept-Charset 要求ヘッダ・フィールド仕様に使用される構文に準拠しています。

    使用可能な文字セットのリストを指定するため、HTTP クライアントはデータベース・サーバに送信する要求に Accept-Charset 要求ヘッダを含めることができます。Accept-Charset 要求ヘッダは、データベース・サーバが応答に使用すべき文字セットを指定します。応答の送信には、クライアントとデータベース・サーバの両方がサポートする文字セットが使用されます。

    Accept-Charset 要求ヘッダが指定されていない場合、クライアントの最優先文字セットであり、かつデータベース・サーバによってサポートされている文字セットが使用されます。データベース・サーバがクライアントから指定されたどの文字セットもサポートしていない場合、または Accept-Charset 要求ヘッダが指定されていない場合は、データベースの文字セットが使用されます。

    クライアントが Accept-Charset 要求ヘッダを送信しなかった場合、データベース・サーバは AcceptCharset オプションに指定されている最初の文字セットを使用します。

    クライアントが Accept-Charset 要求ヘッダを指定し、AcceptCharset HTTP オプションにも文字セット・リストが指定されている場合は、クライアントの最優先文字セットであり、かつデータベース・サーバによってサポートされている文字セットが使用されます。データベース・サーバがクライアントから指定されたどの文字セットもサポートしていない場合は、AcceptCharset HTTP オプションに指定されている最初の文字セットが使用されます。

    AcceptCharset HTTP オプションのプラス記号 (+) は、データベース・サーバにデータベースの文字セットを使用することを指示します。たとえば、( ‘AcceptCharset’, ‘+,UTF-8,*’) のように指定します。これにより、クライアントとデータベース・サーバの両方に共通する文字セットをクライアントが優先する場合でも、可能であれば dbcharset が使用されます。応答に dbcharset を使用することで、変換が不要になり、データベース・サーバの応答時間が短縮されます。

    AcceptCharset HTTP オプションのアスタリスク (*) は、データベース・サーバにクライアントの Accept-Charset リストで指定された文字セットを使用することを指示します。共通の文字セットが存在しない場合は、AcceptCharset オプションに指定されている最初の文字セットが使用されます。

  • SessionId   このオプションを使用して、HTTP セッションの名前を指定します。たとえば、sa_set_http_option( 'SessionId', 'my_app_session_1' ) のようにすると、HTTP セッションの ID が my_app_session_1 に設定されます。SessionId には NULL 以外の文字列を指定する必要があります。HTTP セッションの詳細については、HTTP セッションの使用を参照してください。

  • SessionTimeout   このオプションを使用して、非アクティブ状態の HTTP セッションを保持する時間を分単位で指定します。SessionTimeout オプションは、該当するセッションを使用する HTTP 要求が応答を送信するとリセットされます。

パーミッション

なし

関連する動作

なし

参照

次の例は、可能であれば dbcharset を使用することを指示しています。dbcharset を使用できない場合は、代わりに UTF-8 を使用するよう指示しています。UTF-8 を使用できない場合については、アスタリスク (*) の指定によって、クライアントの最優先文字セットであり、かつデータベース・サーバによってサポートされている文字セットを使用することを指示しています。

sa_set_http_option( 'AcceptCharset', '+,UTF-8,*');

次の擬似コードは、AcceptCharset オプションの使用方法を示しています。

if -- client sends an Accept-Charset header then
      if -- no AcceptCharset HTTP option set then
            if -- at least one of the client charsets are supported then
                  use most preferred client charset that is also supported by the server
            else
                  use dbcharset
            end if;
      else -- an AcceptCharset HTTP option was set
               if -- at least one of the client charsets is also in the HTTP option charset list 
                     and is supported by the server then use most preferred client charset that 
                     is also in the HTTP option charset list and is supported by the server(1)
              else
                     use the first charset listed in the AcceptCharset HTTP option
           end if;
     end if
else -- client did not send an Accept-Charset header
     if -- no AcceptCharset HTTP option set then
           use dbcharset
        else -- an AcceptCharset HTTP option was set
                use the first charset listed in the AcceptCharset HTTP option
        end if
end if;

次の例は、HTTP セッションのタイムアウトを 5 分に設定しています。

CALL sa_set_http_option('SessionTimeout', '5');