メッセージログファイルにログを取る情報を指定できます。
mlsrv12 -c "connection-string" -v[ levels ] ...
このオプションは、メッセージログファイルに書き込まれるメッセージのタイプを制御します。
-v を単独で指定すると、Mobile Link サーバーは、各同期について最小量の情報を書き込みます。多くのレベルを指定するほど、メッセージログファイルへの出力が詳細になります。
冗長レベルを上げ過ぎるとパフォーマンスに影響する可能性があるので、冗長レベルを上げるのは開発中だけにしてください。
対象とする Mobile Link ユーザーまたはリモート ID に対して、Mobile Link サーバーが異なるログの冗長性を使用するように設定できます。Mobile Link サーバーは、5 分ごとに ml_property テーブルをチェックし、Mobile Link ユーザーまたはリモート ID の冗長性設定を調べます。 対象 Mobile Link ユーザーとリモート ID に対する ログの冗長性を参照してください。
バイト長が 32767 バイトを超える CHAR、VARCHAR、NCHAR、または NVARCHAR カラムが同期されるとき、Mobile Link サーバーでは冗長性を持つカラムの値の内容は一部のみが表示されます。この場合は、データの最初のチャンク (最長 100 バイト) が表示されます。このことは i レベル、q レベル、r レベルに適用されます。
使用可能なレベルは次のとおりです。たとえば -vnrsu など、一度に 1 つまたは複数のオプションを使用できます。
+ すべての小文字の冗長性レベルをオンにします。
c 呼び出された各同期スクリプトの内容を表示します。このレベルには、s の機能が含まれます。
e システムイベントスクリプトを表示します。システムイベントスクリプトを使用して、Mobile Link システムテーブルに問い合わせ、管理します。
f 最初の読み込みエラーを表示します。このオプションは、負荷分散装置がサーバーの活性を確認するとき、データを送信しない接続を確立して同期が失敗したために発生したエラーのログを取ります。このオプションを使用して、負荷分散装置が正常に活性チェックを実行していることを確認します。
TCP/IP オプション ignore も参照してください。 詳細については、-x mlsrv12 オプションを参照してください。
h 同期中のリモートスキーマを示します。
i アップロードされた各ローのカラム値を表示します。アップロードとダウンロードされた各ローのカラム値を表示する -vr オプションの代わりにこのオプションを使用すると、ログに記録されるデータ量が減少します。-vi と -vq を同時に指定することは、-vr を指定することと同じです。
k キャッシュが増大または縮小すると、ログに行を出力します。この出力を使用して、ロードのテスト中に最適なキャッシュサイズを見つけることができます。このキャッシュサイズは、システムを配備するときに静的キャッシュサイズとして使用できます。
m 同期が完了するたびに、各同期と各同期フェーズの継続時間をログに出力します。同期フェーズは以下に示します。これらは、Mobile Link モニターに表示されるフェーズと同じです。すべての時間はミリ秒 (ms) で表されます。
[同期要求] Mobile Link クライアントと Mobile Link サーバーの間のネットワーク接続を確立してから、アップロードストリームの最初のバイトを受信するまでの時間。
[アップロードの受信] Mobile Link サーバーでアップロードストリームの最初のバイトが受信されてから、Mobile Link クライアントからのアップロードストリームが完全に受信されるまでの時間。ダウンロード専用同期でもこの時間が長くなる場合があります。時間は、アップロードストリームのサイズと、転送用のネットワーク帯域幅によって異なります。
[DB ワーカーの取得] 空いているデータベースワーカースレッドを取得するために必要な時間。
[接続] 新しいデータベース接続が必要な場合に、データベースワーカースレッドでデータベース接続を確立するために必要な時間。たとえば、前の接続でのエラーの後や、スクリプトのバージョンが変更された場合に新しい接続が必要になります。
[ユーザーを認証] ユーザーの認証に必要な時間。
[同期の開始] begin_synchronization イベントが定義されている場合はこのイベントに必要な時間と、各サブスクリプションの last_upload_time をフェッチするのに必要な時間の合計。
[アップロードの適用] アップロードしたデータを統合データベースに適用するために必要な時間。
[ダウンロードの準備] prepare_for_download イベントに必要な時間。
[ダウンロードのフェッチ] 統合データベースからダウンロードするローをフェッチしてダウンロードストリームを作成するために必要な時間。フェッチダウンロードフェーズには、ダウンロードストリームを作成する時間は含まれません。それはダウンロードの送信フェーズで行われます。大量のダウンロードには非常に長い時間がかかる場合があります。そのような場合、ダウンロードはメモリに収まりません。
[同期の終了] end_synchronization イベントに必要な時間。この後、データベースワーカースレッドが解放されます。このフェーズは、ダウンロードストリームがリモートデータベースに送信される前に発生します。
[ダウンロードの送信] ダウンロードストリームをリモートデータベースに送信するために必要な時間。時間は、ダウンロードストリームのサイズと、転送用のネットワーク帯域幅によって異なります。アップロード専用同期の場合、ダウンロードストリームは単なるアップロード確認です。
ダウンロードの送信フェーズには、ダウンロードストリームを作成する時間が含まれます。そのため、大量のダウンロードには非常に長い時間がかかる場合があります。そのような場合、ダウンロードはメモリには収まりません。
[ダウンロード確認の待機] ダウンロードがリモートデータベースに適用され、リモートデータベースからダウンロード確認が送信されるのを待つ時間。このフェーズは、Mobile Link クライアントでダウンロード確認が有効になっている場合にのみ表示されます。
[ダウンロード確認の DB ワーカーの取得] ダウンロード確認を受信してから、データベースワーカースレッドが空くのを待つ時間。このフェーズは、Mobile Link クライアントでダウンロード確認が有効になっている場合にのみ表示されます。
[ダウンロード確認の接続] 新しいデータベース接続が必要な場合に、データベースワーカースレッドでデータベース接続を確立するために必要な時間。このフェーズは、Mobile Link クライアントでダウンロード確認が有効になっている場合にのみ表示されます。
[非ブロッキングダウンロード確認] publication_nonblocking_download_ack 接続と nonblocking_download_ack 接続のイベントに必要な時間。このフェーズは、Mobile Link クライアントでダウンロード確認が有効になっている場合にのみ表示されます。
各値は、値の検索が容易になるように、"PHASE:" で始まります。
次に、さまざまな同期フェーズの期間を表している出力例を示します。
I. 2008-06-05 14:48:36. <1> PHASE: start_time: 2008-06-05 14:48:36.048 I. 2008-06-05 14:48:36. <1> PHASE: duration: 175 I. 2008-06-05 14:48:36. <1> PHASE: sync_request: 0 I. 2008-06-05 14:48:36. <1> PHASE: receive_upload: 19 I. 2008-06-05 14:48:36. <1> PHASE: get_db_worker: 0 I. 2008-06-05 14:48:36. <1> PHASE: connect: 18 I. 2008-06-05 14:48:36. <1> PHASE: authenticate_user: 51 I. 2008-06-05 14:48:36. <1> PHASE: begin_sync: 69 I. 2008-06-05 14:48:36. <1> PHASE: apply_upload: 0 I. 2008-06-05 14:48:36. <1> PHASE: prepare_for_download: 1 I. 2008-06-05 14:48:36. <1> PHASE: fetch_download: 4 I. 2008-06-05 14:48:36. <1> PHASE: wait_for_download_ack: 0 I. 2008-06-05 14:48:36. <1> PHASE: end_sync: 0 I. 2008-06-05 14:48:36. <1> PHASE: send_download: 10 I. 2008-06-05 14:48:36. <1> PHASE: get_db_worker_for_download_ack: 0 I. 2008-06-05 14:48:36. <1> PHASE: connect_for_download_ack: 0 I. 2008-06-05 14:48:36. <1> PHASE: nonblocking_download_ack: 0 |
n 同期ごとのローカウントの合計を表示します。
o SQL パススルーアクティビティを表示します。
p 同期ごとのリモート進行オフセットと統合進行オフセットの両方を表示します。
q ダウンロードされた各ローのカラム値を表示します。アップロードとダウンロードされた各ローのカラム値を表示する -vr オプションの代わりにこのオプションを使用すると、ログに記録されるデータ量が減少します。-vi と -vq を同時に指定することは、-vr を指定することと同じです。
r アップロードまたはダウンロードされた各ローのカラム値を表示します。アップロードされた各ローのカラム値だけをログに記録する場合は、-vi を使用します。ダウンロードされた各ローのカラム値だけをログに記録する場合は、-vq を使用します。
R
同期の場合のみ、各ログメッセージ内のリモート ID を表示します。Mobile Link サーバーはプレフィクス yyyy-mm-dd hh:mm:ss. <sync_id> (remote_id,)
をログエントリに追加します。
このオプションを -vU オプションと一緒に使用すると、ログメッセージ内のユーザー名も表示されます。
これらの 2 つのコマンドラインオプションは、-v+ オプションの影響を受けません。つまり、-v+ オプションを使用しても、Mobile Link サーバーでは、ログメッセージにリモート ID または Mobile Link ユーザー名は追加されません。
s 呼び出された各同期スクリプトの名前を表示します。
t ODBC 標準フォーマットのスクリプトから生成された、変換された SQL を表示します。このレベルには、c の機能が含まれます。次の例は、SQL Anywhere での文の自動変換を示します。
I. 2009-02-11 11:02:14. [102]: begin_upload synch2 { call SynchLogLine( ?, ?, 'begin_upload' ) } I. 2009-02-11 11:02:14. [102]: Translated SQL: call SynchLogLine( ?, ?, 'begin_upload' ) |
次の例は、同じ文の Microsoft SQLServer での変換を示します。
I. 2009-02-11 11:03:21. [102]: begin_upload synch2 { call SynchLogLine( ?, ?, 'begin_upload' ) } I. 2009-02-11 11:03:21. [102]: Translated SQL: EXEC SynchLogLine ?, ?, 'begin_upload' |
u 未定義のテーブルスクリプトを表示します。このことは、経験の浅いユーザーが同期処理とイベントのフローを理解するのに役立ちます。
U
同期の場合のみ、各ログメッセージ内のユーザー名を表示します。Mobile Link サーバーはプレフィクス yyyy-mm-dd hh:mm:ss. <sync_id> (,user_name)
をログエントリに追加します。
このオプションを -vR オプションと一緒に使用すると、ログメッセージ内のリモート ID も表示されます。
これらの 2 つのコマンドラインオプションは、-v+ オプションの影響を受けません。つまり、-v+ オプションを使用しても、Mobile Link サーバーでは、ログメッセージにリモート ID または Mobile Link ユーザー名は追加されません。
![]() |
DocCommentXchange で意見交換できます
|
Copyright © 2012, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.1 |