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 Anywhere データ・アクセス API » SQL Anywhere Web サービス » HTTP セッションの使用

 

HTTP セッションの作成

セッションは、Web アプリケーション内で sa_set_http_option システム・プロシージャを呼び出し、HTTP オプション SessionID を使用して作成します。セッション ID になり得るのは、NULL 以外の任意の文字列です。内部的には、セッション・キーはセッション ID とデータベース名という構成で生成されるので、複数のデータベースがロードされた場合でも、セッション・キーはデータベース間でユニークになります。セッション・キー全体の長さの上限は 128 文字です。次の例では、ユニークなセッション ID が生成され、sa_set_http_option に渡されています。

DECLARE session_id VARCHAR(64);
DECLARE tm TIMESTAMP;
SET tm=now(*);
SET session_id = 'session_' || 
    CONVERT( VARCHAR, SECONDS(tm)*1000+DATEPART(millisecond,tm));
CALL sa_set_http_option('SessionID', session_id);

Web アプリケーションは、SessionID 接続プロパティを使用してセッション ID を取得できます。接続に対してセッション ID が定義されていない場合 (接続がセッションレスの場合)、このプロパティは空の文字列になります。

DECLARE session_id VARCHAR(64);
SELECT CONNECTION_PROPERTY( 'SessionID' ) INTO session_id;

sa_set_http_option プロシージャを使用してセッションが作成されると、localhost クライアントは、データベース dbname で実行され、サービス session_service を実行する、指定されたセッション ID (session_63315422814117 など) のセッションに、次の URL を指定してアクセスできます。

http://localhost/dbname/session_service?sessionid=session_63315422814117

接続されているデータベースが 1 つだけの場合は、データベース名を省略できます。

http://localhost/session_service?sessionid=session_63315422814117