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 会话

会话是通过调用 sa_set_http_option 系统过程利用 HTTP 选项 SessionID 在 Web 应用程序内创建而成。会话 ID 可以是任何非空字符串。在内部将生成一个由会话 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 过程创建会话后,本地主机客户端便可访问具有指定会话 ID(例如,session_63315422814117),并在运行具有以下 URL 的服务 session_service 的数据库 dbname 内运行的会话。

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

如果仅连接了一个数据库,则可省略数据库名。

http://localhost/session_service?sessionid=session_63315422814117