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 数据库工具接口 » 数据库工具接口 » DBTools 结构

 

a_remote_sql 结构

保存 dbremote 实用程序使用 DBTools 库时所需的信息。

语法
typedef struct a_remote_sql {
    short               version;
    MSG_CALLBACK        confirmrtn;
    MSG_CALLBACK        errorrtn;
    MSG_CALLBACK        msgrtn;
    MSG_QUEUE_CALLBACK  msgqueuertn;
    char *              connectparms;
    char *              transaction_logs;
    a_bit_field         receive : 1;
    a_bit_field         send : 1;
    a_bit_field         verbose : 1;
    a_bit_field         deleted : 1;
    a_bit_field         apply : 1;
    a_bit_field         batch : 1;
    a_bit_field         more : 1;
    a_bit_field         triggers : 1;
    a_bit_field         debug : 1;
    a_bit_field         rename_log : 1;
    a_bit_field         latest_backup : 1;
    a_bit_field         scan_log : 1;
    a_bit_field         link_debug : 1;
    a_bit_field         full_q_scan : 1;
    a_bit_field         no_user_interaction : 1;
    a_bit_field         _unused1 : 1;
    a_sql_uint32        max_length;
    a_sql_uint32        memory;
    a_sql_uint32        frequency;
    a_sql_uint32        threads;
    a_sql_uint32        operations;
    char *              queueparms;
    char *              locale;
    a_sql_uint32        receive_delay;
    a_sql_uint32        patience_retry;
    MSG_CALLBACK        logrtn;
    a_bit_field         use_hex_offsets : 1;
    a_bit_field         use_relative_offsets : 1;
    a_bit_field         debug_page_offsets : 1;
    a_sql_uint32        debug_dump_size;
    a_sql_uint32        send_delay;
    a_sql_uint32        resend_urgency;
    char *              include_scan_range;
    SET_WINDOW_TITLE_CALLBACK set_window_title_rtn;
    char *              default_window_title;
    MSG_CALLBACK        progress_msg_rtn;
    SET_PROGRESS_CALLBACK progress_index_rtn;
    char **             argv;
    a_sql_uint32        log_size;
    char *              encryption_key;
    const char *        log_file_name;
    a_bit_field         truncate_remote_output_file:1;
    char *              remote_output_file_name;
    MSG_CALLBACK        warningrtn;
    char *              mirror_logs;
} a_remote_sql;
成员
成员 说明
version DBTools 版本号。
confirmrtn 指向打印给定消息并接受是或否响应的函数的指针,如果为是,则返回 TRUE,如果为否,则返回 FALSE。
errorrtn 指向打印给定错误消息的函数的指针。
msgrtn 指向打印给定信息性(非错误)消息的函数的指针。
msgqueuertn 指向一个函数的指针,该函数应休眠传递给它的毫秒数时间。当 DBRemoteSQL 正忙但想允许上层对消息进行处理时,使用 0 调用此函数。正常情况下,此例程应返回 MSGQ_SLEEP_THROUGH,或返回 MSGQ_SHUTDOWN_REQUESTED 以停止 SQL Remote 处理过程。
connectparms

连接到数据库所需的参数。对应 dbremote -c 选项。它们采用如下所示的连接字符串形式:

"UID=DBA;PWD=sql;DBF=samples-dir\demo.db"

数据库服务器将由连接字符串的 START 参数启动。例如:

"START=d:\sqlany11\bin32\dbeng11.exe"

一个包括 START 参数的完整连接字符串示例:

"UID=DBA;PWD=sql;DBF=samples-dir\demo.db;START=d:\sqlany11\bin32\dbeng11.exe"

有关连接参数的列表,请参见连接参数

transaction_logs 指向一个字符串的指针,此字符串命名包含脱机事务日志的目录。与 dbremote 的 transaction_logs_directory 参数对应。
receive

如果 receive 为 true,表示收到消息。对应 dbremote -r 选项。

如果 receive 和 send 均为 false,则两者均被认为是 true。建议将两者均设置为 false。

send

如果 send 为 true,表示已发送消息。对应 dbremote -s 选项。

如果 receive 和 send 均为 false,则两者均被认为是 true。建议将两者均设置为 false。

verbose 如果为 true,则打印额外的信息。与 dbremote -v 选项对应。
deleted 应设置为 true。如果为 false,消息被应用后不会被删除。与 dbremote -p 选项对应。
apply 应设置为 true。如果为 false,则扫描消息,但不应用消息。与 dbremote -a 选项对应。
batch 如果为 true,则在应用消息和扫描日志后强制退出。与至少有一个具有 [always] 发送时间的用户的情况相同。如果为 false,则允许由远程用户的发送次数决定运行模式。
more 应设置为 true。
triggers 在大多数情况下,应设置为 false;否则,true 表示 DBRemoteSQL 复制触发器操作。与 dbremote -t 选项对应。
debug 如果设置为 true,则包括调试输出。
rename_log 如果设置为 true,则重命名并将重新启动日志。
latest_backup 如果设置为 true,则只处理备份日志。不发送来自活动日志的操作。与 dbremote -u 选项对应。
scan_log 保留;设置为 false。
link_debug 如果设置为 true,将打开对链接的调试。
full_q_scan 保留;设置为 false。
no_user_interaction 如果设置为 true,则不请求用户交互。
max_length 设置为消息可具有的最大长度(以字节为单位)。这会影响发送和接收。建议值为 50000。与 dbremote -l 选项对应。
memory 设置为在建立要发送的消息时所使用的内存缓冲区的最大大小(以字节为单位)。建议值至少为 2 * 1024 * 1024。与 dbremote -m 选项对应。
frequency 设置进来的消息的轮询频率。此值应设置为 max( 1, receive_delay/60 )。请参见下面的 receive_delay。
threads 设置应当用于应用消息的工作线程的数目。此值不能超过 50。与 dbremote -w 选项对应。
operations 当应用消息时会使用此值。在 DBRemoteSQL 至少具有此数量的未提交操作(插入、删除、更新)之前,提交将被忽略。与 dbremote -g 选项对应。
queueparms 保留;设置为 NULL。
locale 保留;设置为 NULL。
receive_delay 设置为在轮询之间等待新进来的消息的时间(以秒为单位)。建议值为 60。与 dbremote -rd 选项对应。
patience_retry 设置为 DBRemoteSQL 在假定所期待的消息丢失之前应等待的轮询进来的消息的次数。例如,如果 patience_retry 为 3,则 DBRemoteSQL 尝试最多三次来接收缺失的消息。然后,它会发送一个重新发送请求。建议值为 1。与 dbremote -rp 选项对应。
logrtn 指向将给定消息打印到日志文件的函数的指针。这些消息无需用户进行查看。
use_hex_offsets 如果想以十六进制表示法显示日志偏移,请将其设置为 true;否则,将使用十进制表示法。
use_relative_offsets 如果想以相对于当前日志文件开始位置的方式显示日志偏移,请将其设置为 true。如果想显示相对于开始时间的日志偏移,则将其设置为 false。
debug_page_offsets 保留;设置为 false。
debug_dump_size 保留;设置为 0。
send_delay 设置扫描日志文件以查找要发送的新操作的时间间隔(以秒为单位)。设置为零可允许 DBRemoteSQL 根据用户发送时间选择一个合适的值。与 dbremote -sd 选项对应。
resend_urgency 设置 DBRemoteSQL 在知道用户需要重新扫描之后,在执行完全日志扫描之前所等待的时间(以秒为单位)。设置为零可允许 DBRemoteSQL 根据用户发送时间及其收集的其它信息选择一个合适的值。与 dbremote -ru 选项对应。
include_scan_range 保留;设置为 NULL。
set_window_title_rtn 指向一个重置窗口标题的函数的指针(仅适用于 Windows)。标题可以是 "database_name(接收、扫描或发送)- default_window_title"。
default_window_title 指向缺省窗口标题字符串的指针。
progress_msg_rtn 指向显示进程消息的函数的指针。
progress_index_rtn 指向更新进度条状态的函数的指针。该函数具有两个无符号整型变量 indexmax。第一次调用时,这两个值分别为最小和最大值(如 0、100)。后续调用时,第一个参数为当前索引值(例如,0 到 100 之间的值),而第二个参数始终为 0。
argv 指向所分析命令行的指针(字符串指针矢量)。如果不为 NULL,则 DBRemoteSQL 将调用消息例程来显示前缀不是 -c、-cq 或 -ek 的每个命令行参数。
log_size 当联机事务日志的大小大于此值时,DBRemoteSQL 将重命名并重新启动联机事务日志。与 dbremote -x 选项对应。
encryption_key 指向加密密钥的指针。与 dbremote -ek 选项对应。
log_file_name 指向 DBRemoteSQL 输出日志的名称的指针,消息回调会将其输出打印到该输出日志。如果 send 为 true,错误日志会被发送到统一数据库(除非此指针为 NULL)。
truncate_remote_output_file 设置为 true 将使得远程输出文件被截断,而非附加到远程输出文件。请参见下文。与 dbremote -rt 选项对应。
remote_output_file_name 指向 DBRemoteSQL 远程输出文件的名称的指针。与 dbremote -ro 或 -rt 选项对应。
warningrtn 指向打印给定警告消息的函数的指针。如果为 NULL,将改为调用 errorrtn 函数。
mirror_logs 指向目录名称的指针,该目录包含脱机镜像事务日志。与 dbremote -ml 选项对应。

dbremote 工具在处理任何命令行选项前会设置以下缺省值:

另请参见