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

SAP Sybase SQL Anywhere 16.0 (中文) » SQL Remote » 教程:设置复制系统,该系统使用 HTTP 消息系统并将统一数据库用作消息服务器(通过中继服务器)

 

第 3 课:配置统一数据库以用作消息服务器

配置统一数据库以用作 HTTP 消息系统的消息服务器

前提条件

您必须具有 SYS_REPLICATION_ADMIN_ROLE 系统角色。

上下文和注释

还可以配置单独的数据库和数据库服务器以用作消息服务器。

 任务
  1. 以具有 SYS_REPLICATION_ADMIN_ROLE 系统角色的用户身份通过 Interactive SQL 进行连接:

    dbisql -c "SERVER=cons;DBN=cons;UID=DBA;PWD=sql"
  2. 首次初始化数据库时,未定义接受来自远程用户的 HTTP 请求所需的 web 服务,也未定义允许数据库服务器访问存储消息文件的目录的定义。通过使用 sr_add_message_server 存储过程,可使这些对象的创建自动化,这将要求使用一个可选参数,以指定所有对象的拥有者。针对消息服务器数据库 (msgsrv) 执行下列语句,以定义消息服务器所需的所有对象,并指定 cons 用户拥有所有对象:

    CREATE ROLE FOR USER cons;
    SET REMOTE http OPTION cons.root_directory='c:\\tutorial\\messages';
    CALL sr_add_message_server( 'cons' );
    COMMIT;
  3. 中继服务器将 HTTP 请求转发到后端 SQL Anywhere 服务器时,需要一些额外配置。可以为后端 SQL Anywhere 服务器设置一个高可用性环境,其中一些节点将被定义为只读,而一些将被定义为读写节点。在本教程中,系统中只有一个数据库服务器,因此需要将数据库定义为读写节点。针对统一数据库 (cons) 执行以下语句,以定义所有所需的对象,以便中继服务器能够将此数据库服务器识别为读写节点:



    CREATE PROCEDURE sp_oe_read_status()
    RESULT (doc LONG VARCHAR)
    BEGIN
    DECLARE res LONG VARCHAR;
    SET res='AVAILABLE=TRUE';
    CALL sa_set_http_header('Content-Length', LENGTH(res) );
    SELECT res;
    END;
    GO
    	
    CREATE SERVICE oe_read_status
    TYPE 'raw'
    AUTHORIZATION OFF
    SECURE OFF
    USER DBA
    AS CALL sp_oe_read_status();
    GO
  4. 与 Interactive SQL 断开连接。

  5. 出站启动器在中继服务器和后端 SQL Anywhere 服务器之间充当通道。在 machine_cons 计算机上,使用以下命令行启动中继服务器出站启动器 (RSOE):

    rsoe -cr "host=machine_iis;port=80;url_suffix=/rs/server/rs_server.dll" 
    -cs "host=machine_cons;port=8033;status_url=/oe_read_status"
    -f srhttp_tutorial_farm -id srhttp_tutorial_server -v 5 -o rsoe.log
    

结果

已配置统一数据库以用作 HTTP 消息系统的消息服务器。

下一个

前进至第 4 课:创建远程数据库