Allows you to specify what information is logged to the message log file.
mlsrv12 -c "connection-string" -v[ levels ] ...
This option controls the type of messages written to the message log file.
If you specify -v alone, the MobiLink server writes a minimal amount of information about each synchronization. The more levels specified, the more verbose the output to the message log file.
A high level of verbosity can adversely affect performance and should only be used during development.
The MobiLink server can be set to use different log verbosity for a targeted MobiLink user or remote ID. The MobiLink server checks the ml_property table every five minutes and looks for verbose settings for a MobiLink user or remote ID. See Log verbosity for targeted MobiLink users and remote IDs.
When a CHAR, VARCHAR, NCHAR or NVARCHAR column with a byte length of greater than 32767 bytes is synchronized, the MobiLink server does not display the full contents of the column values in verbosity. Instead, the first chunk of data, up to 100 bytes in length, is displayed. This applies to the i, q and r levels.
The available levels are as follows. You can use one or more of these options at once; for example, -vnrsu.
+ Turn on all of the lowercase verbosity levels.
c Show the content of each synchronization script when it is invoked. This level implies s.
e Show system event scripts. These system event scripts are used to query and maintain MobiLink system tables.
f Show first-read errors. This logs errors caused when load-balancing devices check for server liveness by making connections that don't send any data, and cause failed synchronizations. Use this option to verify that the load balancer is properly performing liveness checks.
See also the TCP/IP option ignore. For more information, see -x mlsrv12 option.
h Show the remote schema being synchronized.
i Display the column values of each row uploaded. Use this option instead of -vr, which displays the column values of each row uploaded and downloaded, to reduce the amount of data being logged. Specifying -vi with -vq is the same as specifying -vr.
k Prints a line to the log whenever the cache grows or shrinks. This can be used during load testing to find the optimal cache size which can then be used as a static cache size when deploying your system.
m Prints the duration of each synchronization and the duration of each synchronization phase to the log whenever a synchronization completes. The synchronization phases are shown below. They are the same as those displayed in the MobiLink Monitor. All times are shown in milliseconds (ms).
Synchronization request The time taken between creating the network connection between the MobiLink client and the MobiLink server, up to receiving the first bytes of the upload stream.
Receive upload The time taken from the first bytes of the upload stream being received by the MobiLink server until the upload stream from the MobiLink client has been completely received. The time may be significant even for a download-only synchronization. The time depends on the size of the upload stream and the network bandwidth for the transfer.
Get DB worker The time taken to acquire a free database worker thread.
Connect The time taken by the database worker thread to make a database connection if a new database connection is needed. For example, after an error on the previous connection or if the script version has changed.
Authenticate user The time taken to authenticate the user.
Begin synchronization The time taken for the begin_synchronization event if it is defined, plus the time to fetch the last_upload_time for each subscription.
Apply upload The time taken for the uploaded data to be applied to the consolidated database.
Prepare for download The time taken for the prepare_for_download event.
Fetch download The time taken to fetch the rows to be downloaded from the consolidated database to create the download stream. The fetch download phase does not include the time to create the download stream, which is done in the send download phase. This can take a significant amount of time for large downloads, when the download can not fit in memory.
End synchronization The time taken for the end_synchronization event, after which the database worker thread is released. This phase occurs before the download stream is sent to the remote database.
Send download The time taken to send the download stream to the remote database. The time depends on the size of the download stream and the network bandwidth for the transfer. For an upload-only synchronization, the download stream is simply an upload acknowledgement.
The send download phase includes the time to create the download stream, which can take a significant amount of time for large downloads, when the download can not fit in memory.
Wait for download ack The time spent waiting for the download to be applied to the remote database and for the remote database to send the download acknowledgement. This phase is only shown if the MobiLink client has enabled download acknowledgement.
Get DB worker for download ack The time spent waiting for a free database worker thread after the download acknowledgement has been received. This phase is only shown if the MobiLink client has enabled download acknowledgement.
Connect for download ack The time required by the database worker thread to make a database connection if a new database connection is needed. This phase is only shown if the MobiLink client has enabled download acknowledgement.
Non-blocking download ack The time required for the publication_nonblocking_download_ack connection and nonblocking_download_ack connection events. This phase is only shown if the MobiLink client has enabled download acknowledgement.
Each value is prefixed with "PHASE:" to aid in searching for the values.
The following example is sample output showing the durations for the various synchronization phases:
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 Show row-count totals per synchronization.
o Show SQL passthrough activity.
p Show both remote and consolidated progress offsets per synchronization.
q Display the column values of each row downloaded. Use this option instead of -vr, which displays the column values of each row uploaded and downloaded, to reduce the amount of data being logged. Specifying -vi with -vq is the same as specifying -vr.
r Display the column values of each row uploaded or downloaded. To log only the column values of each row uploaded, use -vi. To log only the column values of each row downloaded, use -vq.
R
For synchronizations only, show the remote ID in each log message. The MobiLink server adds the prefix yyyy-mm-dd hh:mm:ss. <sync_id> (remote_id,)
to the log entries.
Use this option with the -vU option to also show the user name in the log message.
These two command line options are not affected by the -v+ option, that is, the MobiLink server does not add the remote ID or the MobiLink user name into its logging messages even if the -v+ option is used.
s Show the name of each synchronization script as it is invoked.
t Show the translated SQL that results from scripts that are written in ODBC canonical format. This level implies c. The following example shows the automatic translation of a statement for 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' ) |
The following example shows the translation of the same statement for Microsoft SQL Server.
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 Show undefined table scripts. This may help new users understand the synchronization process and the flow of events.
U
For synchronizations only, shows the user name in each log message. The MobiLink server adds the prefix yyyy-mm-dd hh:mm:ss. <sync_id> (,user_name)
to the log entries.
Use this option with the -vR option to also show the remote ID in the log message.
These two command line options are not affected by the -v+ option, that is, the MobiLink server does not add the remote ID or the MobiLink user name into its logging messages even if the -v+ option is used.
Discuss this page in DocCommentXchange.
|
Copyright © 2012, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.1 |