-v option

Allows you to specify what information is logged to the message log file and displayed in the synchronization window.

Syntax
mlsrv11 -c "connection-string" -v[ levels ] ...
Remarks

This option is particularly useful when dbmlsync transaction-level uploads are used.

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.

A high level of verbosity can adversely affect performance and should only be used during development.

The values of levels are as follows. You can use one or more of these options at once; for example, -vnrsu.

  • +   Turn on all logging options that increase verbosity.

  • 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 maintain MobiLink system tables and the SQL scripts that control the upload.

  • 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.

    For TCP/IP connections, you might be better off using the TCP/IP option ignore. For more information, see -x option.

  • h   Show the remote schema as uploaded during synchronization.

  • 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.

  • 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 remote database and the MobiLink server, up to receiving the first bytes of the upload stream. This time is insignificant unless you have set -sm to a smaller value than -nc, in which case this time can include the time that a synchronization is paused, when the number of synchronizations is larger than the maximum number of active synchronizations that were specified with -sm.

    • 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 remote database has been completely received. The upload stream includes table definitions and the remote database rows being uploaded, so 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 required to acquire a free database worker thread.

    • Connect   The time required by the database worker thread to make a database connection if a new database connection is needed. For example, after an error or if the script version has changed.

    • Authenticate user   The time required to authenticate the user.

    • Begin synchronization   The time required for the begin_synchronization event if it is defined, plus the time to fetch the last_upload_time for each subscription (using the shared MobiLink administrative connection).

    • Apply upload   The time required for the uploaded data to be applied to the consolidated database.

    • Prepare for download   The time required for the prepare_for_download event.

    • Fetch download   The time required to fetch the rows to be downloaded from the consolidated database to create the download stream.

    • End synchronization   The time required for the end_synchronization event, after which the database worker thread is released. If you are using blocking download acknowledgement, then this phase occurs after the Wait for download ack phase. Otherwise, it occurs before the download stream is sent to the remote database.

    • Send download   The time required 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.

    • 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 remote database 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 remote database has enabled download acknowledgement and the MobiLink server is using non-blocking 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 remote database has enabled download acknowledgement and the MobiLink server is using non-blocking 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 remote database has enabled download acknowledgement and the MobiLink server is using non-blocking download acknowledgement.

    Each value is prefixed with "PHASE:" to aid in searching for and printing 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 summaries.

  • o   Show SQL passthrough activity.

  • p   Show progress offsets.

  • 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.

  • 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. 02/11 11:02:14. [102]: begin_upload synch2
    { call SynchLogLine( ?, ?, 'begin_upload' ) }
    I. 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. 02/11 11:03:21. [102]: begin_upload synch2
    { call SynchLogLine( ?, ?, 'begin_upload' ) }
    I. 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.

See also