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 Remote » SQL Remote のリファレンス » SQL Remote ユーティリティとオプションのリファレンス

 

Message Agent (dbremote)

内容

SQL Remote メッセージの送信と適用、およびメッセージの配信を確認するメッセージ・トラッキング・システムの管理を行います。

構文
dbremote [ options ] [ directory ]
オプション
オプション 説明

@data

このオプションを使用すると、指定された環境変数または設定ファイルからオプションを読み込むことができます。同じ名前の環境変数と設定ファイルが両方存在する場合は、環境変数が使用されます。設定ファイルの使用を参照してください。

設定ファイル内のパスワードなどの情報を保護する場合は、ファイル難読化ユーティリティを使用して、設定ファイルの内容を難読化できます。ファイル難読化ユーティリティ (dbfhide)を参照してください。

環境変数には、あらゆるオプションのセットを格納できます。たとえば、次の文の組み合わせは、4 MB のキャッシュ・サイズで起動し、メッセージだけを受信し、myserver というデータベース・サーバの field というデータベースに接続する SQL Remote プロセス用に、オプションのセットを格納する環境変数を設定します。SET 文は 1 行で入力してください。

SET envvar=-m 4096 -r
 -c "ENG=myserver;DBN=field;UID=sa;PWD=sysadmin"
dbremote @envvar

設定ファイルには、改行を含めたり、あらゆるオプションの設定を格納したりできます。たとえば、次のコマンド・ファイルには、4 MB のキャッシュ・サイズで起動し、メッセージだけを送信し、myserver というデータベース・サーバの field というデータベースに接続する Message Agent 用のオプションのセットが格納されています。

-m 4096
-s
-c "ENG=myserver;DBN=field;UID=sa;PWD=sysadmin"

この設定ファイルを c:\config.txt として保存すると、コマンドで次のように使用できます。

dbremote @c:\config.txt

-a

受信したメッセージ (受信ボックス内にあるもの) を、データベースに適用しないで処理します。このオプションを使用するときに、-v (冗長出力) と -p (メッセージがパージされない) の両方を指定すると、入力メッセージの問題を検出しやすくなります。このオプションを使用するときに -p を指定しないと、メッセージを適用しないで受信ボックスがパージされるため、サブスクリプションを再開する場合に便利です。

-b

バッチ・モードで実行します。このモードでは、Message Agent は受信メッセージを処理し、トランザクション・ログを 1 回スキャンし、出力メッセージを処理して停止します。

-c "keyword=value; ..."

接続パラメータを指定します。このオプションを指定しない場合、環境変数 SQLCONNECT が使用されます。

たとえば、次の文では c:\mydata.db にあるデータベース・ファイルで dbremote を実行します。接続にはユーザ ID DBA とパスワード sql を使用しています。

dbremote -c "UID=DBA;PWD=sql;DBF=c:\mydata.db"

Message Agent を実行するユーザには、REMOTE DBA 権限または DBA 権限が必要です。REMOTE DBA 権限の付与を参照してください。

Message Agent は、SQL Anywhere 接続パラメータの全種類をサポートします。接続パラメータを参照してください。

-dl

[Message Agent] ウィンドウまたはコマンド・プロンプトにメッセージを表示します。指定されている場合はログ・ファイルに出力します。

-ek key

コマンド・プロンプトで、強力に暗号化されたデータベースの暗号化キーの入力を求めるプロンプトを表示するよう指定します。強力に暗号化されたデータベースを扱う場合には、データベースやトランザクション・ログ (オフライン・トランザクション・ログなど) を使用するのに、常に暗号化キーを使用する必要があります。強力な暗号化が適用されたデータベースの場合、-ek または -ep のどちらかを指定します。両方同時には指定できません。強力に暗号化されたデータベースでは、キーを指定しないとコマンドが失敗します。

-ep

暗号化キーの入力を求めるプロンプトを表示するよう指定します。このオプションを指定すると、暗号化キーを入力するためのウィンドウが表示されます。クリア・テキストでは暗号化キーを見ることができないようにすることで、高いセキュリティが得られます。強力な暗号化が適用されたデータベースの場合、-ek または -ep のどちらかを指定します。両方同時には指定できません。強力に暗号化されたデータベースでは、キーを指定しないとコマンドが失敗します。

-g n

n 個未満のオペレーションのトランザクションを、後に続くトランザクションとまとめるように Message Agent に指示します。デフォルトのオペレーション数は 20 です。n の値を大きくするとコミットが少なくなるため、受信メッセージの処理速度が向上します。ただし、トランザクションのサイズが大きくなると、デッドロックやブロックの原因になることもあります。

-l length

送信する各メッセージの最大長をバイトで指定します。長いトランザクションは複数のメッセージに分割されます。デフォルトは 50000 バイトで、最小長は 10000 バイトです。

警告

メッセージの最大長は、同一のインストール環境内のすべてのサイトで必ず同じ長さにしてください。

メモリの割り付けに制限のあるプラットフォームの場合、この値はオペレーティング・システムのメモリ割り付けの最大値より小さい値にしてください。

-m size

メッセージ作成と入力メッセージのキャッシュに、Message Agent が使用する最大メモリ・サイズを指定します。使用できるサイズは、n (バイト)、n K、n M で指定します。デフォルトは 2048 KB (2 MB) です。

すべてのリモート・データベースが、レプリケートされるオペレーションのユニーク・サブセットを受信する場合、それぞれのリモート・データベースにメッセージが同時に作成されます。同じオペレーションを受信するリモート・ユーザのグループには、メッセージが 1 つだけ作成されます。使用されるメモリが -m 値を超えると、メッセージの送信後に最大サイズ (-l オプションで指定したサイズ) に達します。

メッセージが届くと、適用されるまで Message Agent によってメモリ内に格納されます。このようなメッセージのキャッシュによって、適切でないメッセージをメッセージ・システムが再読み込みしないようにできますが、大規模なインストール環境ではパフォーマンスが低下することもあります。-m オプションで指定したメモリ使用量を超過すると、最低使用頻度 (LRU) 方式でメッセージがフラッシュされます。

-ml directory

オフライン・トランザクション・ログ・ミラー・ファイルのロケーションを指定します。このオプションを指定すると、次のどちらかの状況になった場合に、dbremote は古いトランザクション・ログ・ミラー・ファイルを削除できます。

  • オフライン・トランザクション・ログ・ミラーが、トランザクション・ログ・ミラーとは異なるディレクトリに置かれる

  • dbremote がリモート・データベース・サーバとは異なるコンピュータで実行されている

通常の設定では、アクティブなトランザクション・ログ・ミラーと名前が変更されたトランザクション・ログ・ミラーは同じディレクトリ内に存在し、dbremote はリモート・データベースと同じコンピュータ上で実行されるため、このオプションを指定しなくても、古いトランザクション・ログ・ミラー・ファイルは自動的に削除されます。このディレクトリ内のトランザクション・ログが影響を受けるのは、delete_old_logs データベース・オプションが Off 以外の値に設定されている場合だけです。

-o file

出力ログ・ファイルにメッセージを出力します。デフォルトでは、画面に出力を表示します。

-os size

出力メッセージをロギングするファイルの最大サイズを指定します。使用できるサイズは、n (バイト)、nK (KB)、または nM (MB) で指定します。デフォルトによる制限はなく、最小制限は 10000 バイトです。

SQL Remote では、現在のファイル・サイズをチェックしてから、出力メッセージを出力ログ・ファイルに記録します。ログ・メッセージによって、ファイル・サイズが指定したサイズより大きくなると、SQL Remote は出力ファイルの名前をそれぞれ yymmddxx.dbr に変更します。xx は AA から ZZ までの連続した英字で、yymmdd は現在の年月日を表します。

Message Agent を継続モードで長時間実行する場合、このオプションを使用して、手動で古い出力ログ・ファイルを削除し、ディスク領域を解放できます。

-ot file

出力ログ・ファイルをトランケートし、このファイルに出力メッセージを追加します。デフォルトでは、画面に出力を送信します。

-p

メッセージをパージしません。

-q

Message Agent を最小化ウィンドウで起動します。このオプションは、Windows オペレーティング・システムの場合にのみ適用されます。

-qc

完了後、SQL Remote のウィンドウを閉じます。

-r

メッセージを受信します。-r と -s のいずれも指定しない場合、Message Agent は両方のフェーズを実行します。それ以外の場合、指定されたフェーズのみ実行されます。

-r オプションで実行された場合、Message Agent は継続モードで動作します。メッセージ受信後に Message Agent を停止するには、-r オプションと -b オプションを使用します。

-rd minutes

受信メッセージのポーリング頻度を指定します。デフォルトでは、Message Agent は入力メッセージを 1 分ごとにポーリングします。このオプション (rd は「受信遅延 (receive delay)」の意味) によってポーリング頻度を設定できます。これは、ポーリングが高負荷である場合に便利です。

頻繁にポーリングする場合は、秒数を表す数の後にサフィックス s を付けると便利です。たとえば、次のコマンドでは、30 秒ごとにポーリングが行われます。

dbremote -rd 30s

-rd オプションは、欠落しているメッセージの再送を要求するまでに Message Agent が待機するポーリングの回数を設定する -rp オプションとともに使用されることが多くあります。

メッセージ受信時のパフォーマンス向上を参照してください。

-ro filename

ファイルにリモート出力を記録します。このオプションは統合サイトで使用します。統合データベースに出力ログ情報を送信するようにリモート・データベースを設定する場合、このオプションを使用すると情報がファイルに書き込まれます。このオプションを指定すると、管理者がリモート・サイトでエラーのトラブルシューティングを行う場合に役立ちます。

リモート・データベースからのエラーの収集を参照してください。

-rp number

メッセージを消失したと判断するまでのポーリング受信回数を指定します。Message Agent を継続モードで実行すると、メッセージが一定の間隔でポーリングされます。設定回数 (デフォルトでは 1 回) のポーリングが行われた後にメッセージが欠落していると、Message Agent はそのメッセージが失われたと判断して、メッセージの再送を要求します。このため、メッセージ・システムの処理速度が遅い場合、この動作によって必要のない再送要求が多く出されることがあります。このオプションを使用して、再送要求が出される前に行うポーリング回数を指定すると、再送要求の数を最小限に抑えることができます。

このオプションの設定方法については、メッセージ受信時のパフォーマンス向上を参照してください。

-rp オプションは、受信メッセージのポーリング頻度を設定する -rd オプションとともに使用されることが多くあります。

-rt filename

起動時に出力ログ・ファイルをトランケートし、このファイルにリモート・データベースのログ出力を追加します。このオプションは統合サイトで使用します。ファイルが起動時にトランケートされることを除いて、-ro オプションと同じです。

-ru time

再送の宛先のログを再スキャンする待ち時間を指定します。

「再送信緊急度 (resend urgency)」を制御します。再送信要求の検出から、Message Agent がこの要求の処理を開始するまでの時間を指定します。このオプションを使用すると、Message Agent が複数のユーザの再送信要求を集めてからログの再スキャンを行うことができます。指定できる時間の単位は s (秒)、m (分)、h (時間)、または d (日数) です。

-s

メッセージを送信します。-r と -s のいずれも指定しない場合、Message Agent は両方のフェーズを実行します。それ以外の場合、指定されたフェーズのみ実行されます。

-sd time

データベース・トランザクション・ログのポーリングとポーリングの間の遅延を制御します。-sd オプションは、継続モードで実行する場合にのみ使用されます。

「送信遅延 (send delay)」を制御します。これは、ポーリングとポーリングの間に送信されるトランザクション・ログ・データを待つ時間です。

-t

すべてのトリガをレプリケートします。このオプションを使用する場合は、トリガの動作がリモート・データベースで 2 回 (リモート・サイトでトリガを起動するとき、および統合データベースからレプリケートされた動作を明示的に適用するとき) 実行されないようにする必要があります。

トリガの動作が 2 回実行されないようにするには、トリガの本文を IF CURRENT REMOTE USER IS NULL ... END IF 文で囲みます。 CURRENT REMOTE USER 特殊定数の使用を参照してください。

-u

オフライン・トランザクション・ログにあるトランザクションのみを処理します。このオプションを指定すると、最後にバックアップされた以降のトランザクションは処理されません。このオプションを使用すると、出力トランザクションと入力トランザクションの確認が、オフライン・トランザクション・ログから削除されてから送信されるようになります。

名前が変更されたログのトランザクションだけが処理されます。

-ud

UNIX プラットフォームで、Message Agent をデーモンとして実行します。Message Agent をデーモンとして実行する場合は、-o または -ot オプションも指定して、出力情報のログを取ってください。

Message Agent をデーモンとして実行し、FTP または SMTP メッセージ・リンクを使用する場合は、データベースにメッセージ・リンク・パラメータを格納してください。これは、Message Agent をデーモンとして実行していると、これらのオプションの入力をユーザに要求しないためです。

メッセージ・リンク・パラメータの詳細については、リモート・メッセージ・タイプ制御パラメータの設定を参照してください。

-ux

Solaris と Linux で SQL Remote のメッセージ・ウィンドウを開きます。

-ux が指定されている場合、dbremote は使用可能な表示を見つけます。たとえば、DISPLAY 環境変数が設定されていなかったり、X-Window Server が実行されていなかったりしたために、使用可能な表示が見つからなかった場合、dbremote は起動できません。Windows では、SQL Remote のメッセージ・ウィンドウが自動的に表示されます。

-v

冗長出力を表示します。このオプションによって、メッセージに含まれる SQL 文がメッセージ・ウィンドウに表示されます。-o または -ot オプションを指定するとログ・ファイルに出力されます。

-w n

受信メッセージを適用するデータベース・ワーカ・スレッド数を指定します。このオプションは、Windows Mobile ではサポートされていません。

デフォルトは 0 です。この場合、すべてのメッセージがメインの (1 つだけの) スレッドによって適用されます。1 の値を指定すると、1 つのスレッドがメッセージ・システムからメッセージを受信し、1 つのスレッドがメッセージをデータベースに適用します。データベース・ワーカ・スレッドの最大数は 50 です。

-w オプションを指定すると、ハードウェアのアップグレードによって、受信メッセージのスループットを増加できます。多くのオペレーションを同時に実行できるデバイスに統合データベースを配置すると、受信メッセージのスループットが向上します。このような統合データベースの配置方法をストライプ論理ドライブの RAID アレイといいます。また、Message Agent を実行するコンピュータにマルチ・プロセッサを搭載しても、入力メッセージのスループットは向上します。

多くのオペレーションを同時に実行できないハードウェアでは、-w オプションを使用してもパフォーマンスはそれほど向上しません。

単一のリモート・データベースからの受信メッセージを複数のスレッドに適用できません。単一のリモート・データベースからのメッセージは、常に適切な順序で逐次適用されます。

-x [ size ]

出力メッセージがスキャンされた後、トランザクション・ログの名前を変更し、再起動します。場合によっては、リモート・データベースのバックアップが実行されたり、データベース・サーバをシャットダウンするときにトランザクション・ログの名前を変更する代わりに、統合データベースにデータがレプリケートされます。

オプションの size 修飾子が指定された場合、トランザクション・ログは、指定されたサイズよりも大きい場合にのみ名前を変更されます。使用できるサイズは、n (バイト)、nK、nM で指定します。デフォルトは 0 です。

Directory

古いトランザクション・ログが保存されるディレクトリを指定します。

オプションの directory パラメータは、古いトランザクション・ログが保存されているディレクトリを指定します。これにより、Message Agent は現在のログが開始される前のイベントにアクセスできます。

説明

Message Agent は、SQL Remote レプリケーションのメッセージの送信と適用、およびメッセージの配信を確認するメッセージ・トラッキング・システムの管理を行います。

Message Agent の実行プログラム名は dbremote です。

DBTools ライブラリに呼び出すと、自分のアプリケーションから Message Agent を実行することもできます。詳細については、SQL Remote インストール・ディレクトリの h サブディレクトリにある dbrmt.h ファイルを参照してください。

Message Agent コマンドのユーザ ID には REMOTE DBA か DBA 権限が必要です。

Message Agent はいくつかのデータベース接続を使用します。Message Agent (dbremote)を参照してください。

REMOTE DBA 権限の詳細については、REMOTE DBA 権限の付与を参照してください。

メッセージ・システム制御パラメータ

SQL Remote は、複数のレジストリ設定を使用してメッセージ・リンク動作を制御します。

メッセージ・リンク制御パラメータは、次の場所に格納されます。

  • Windows   レジストリ内の次の場所に格納されます。
    \\HKEY_CURRENT_USER
     \Software
      \Sybase
        \SQL Remote

レジストリ設定のリストについては、SQL Remote メッセージ・システムの各メッセージ・システムの項を参照してください。