会话是通过调用 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 |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |