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

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

 

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

在本课中,你将配置统一数据库以用作 HTTP 消息系统的消息服务器。还可以配置单独的数据库和数据库服务器以用作消息服务器。

 ♦ 配置统一数据库以用作消息服务器
  1. 使用 Interactive SQL,以具有 DBA 权限的用户身份进行连接:

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

    GRANT GROUP TO 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
    
  6. 前进至第 4 课:创建远程数据库