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 構造体

DBTools ライブラリを使用する dbremote ユーティリティが必要とする情報を格納します。

構文
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 指定されたメッセージを表示する関数へのポインタ。yes または no による応答を受け付けます。yes の場合は TRUE を返し、no の場合は FALSE を返します。
errorrtn 指定されたエラー・メッセージを表示する関数へのポインタ。
msgrtn 指定された (エラー以外の) 情報メッセージを表示する関数へのポインタ。
msgqueuertn 指定された時間 (ミリ秒) が経過したらスリープ状態になる関数へのポインタ。この関数は、0 に設定され、DBRemoteSQL がビジー状態だが上位レイヤでメッセージが処理されるようにする場合に呼び出されます。このルーチンは、通常、MSGQ_SLEEP_THROUGH を返し、SQL Remote 処理を停止する場合は MSGQ_SHUTDOWN_REQUESTED を返します。
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

true の場合、メッセージを受信します。dbremote の -r オプションに対応します。

receive と send の両方が false の場合、両方とも true であると見なされます。receive と send の両方を false に設定することをおすすめします。

send

true の場合、メッセージを送信します。dbremote の -s オプションに対応します。

receive と send の両方が false の場合、両方とも true であると見なされます。receive と send の両方を false に設定することをおすすめします。

verbose true の場合、追加情報を表示します。dbremote の -v オプションに対応します。
deleted true に設定してください。false に設定した場合、メッセージは適用後に削除されません。dbremote の -p オプションに対応します。
apply true に設定してください。false に設定した場合、メッセージはスキャンされますが、適用されません。dbremote の -a オプションに対応します。
batch true の場合、メッセージを適用してログをスキャン後に強制的に終了します。少なくとも 1 ユーザが「常に」送信時刻を保持している場合と同様です。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 は見つからないメッセージの受信を 3 回まで試行します。その後、DBRemoteSQL は再送要求を送信します。推奨値は 1 です。dbremote の -rp オプションに対応します。
logrtn 指定されたメッセージをログ・ファイルに出力する関数へのポインタ。メッセージをユーザに表示する必要はありません。
use_hex_offsets ログ・オフセットを 16 進表記で表示する場合は、true に設定します。そうでない場合は、小数表記が使用されます。
use_relative_offsets ログ・オフセットを現在のログ・ファイルの開始点への相対値として表示する場合は、true に設定します。ログ・オフセットを開始時刻から表示する場合は、false に設定します。
debug_page_offsets 予約。false に設定します。
debug_dump_size 予約。0 に設定します。
send_delay 新しい操作のログ・ファイルのスキャンを送信するまでの時間を秒単位で設定します。0 に設定すると、DBRemoteSQL はユーザの送信時刻に基づいて適切な値を選択します。dbremote の -sd オプションに対応します。
resend_urgency ユーザが再スキャンを必要としていることが判明してからログのフル・スキャンを実行するまでの DBRemoteSQL の待機時間を秒単位で設定します。0 に設定すると、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 進行状況バーのステータスを更新する関数へのポインタ。この関数には符号なしの整数を指定する 2 つの引数 indexmax があります。最初の呼び出しでは、2 つの引数の値は最小値と最大値 (例:0 と 100) になります。2 回目以降の呼び出しでは、最初の引数は現在のインデックス値 (例:0 ~ 100) になり、2 番目の引数は常に 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 ツールは、次のデフォルト値を設定してからコマンド・ライン・オプションを処理します。

参照