we had an effect in the MobiLink server log file. By accident a synchronised column in the consolidated db has a longer varchar datatype (varchar(14) meant for timestamp in character format) then the corresponding column in the remote db (varchar(8) meant for date in character format). As to expect one day it happens, that the actual value in the consolidated was longer than allowed in the remote. That gave a sync error in the log file:
"[-10038] A downloaded value for table 'LFV_LGER' (column #8) was either too big or invalid for the remote schema type"
That's correct but (because we are logging with -v+) looking at the value in the server log it shows only the first part of the actual value in the consolidated.
So at first sight that looks okay. Maybe in such case the log should show the actual value rather than the part according to the remote type declaration?
(using SQL Anywhere 126.96.36.1995, MobiLink-Server on a Windows box)
TIA, Chris Werner
This is an expected behavior. Here is the reason: The MobiLink server does not describe the columns of the result set returned by the download_cursor or download_delete_cursor script, because some of the ODBC drivers do not support the necessary functions. Therefore, the MobiLink server will allocate a buffer for each column of the result set and the buffer size will be determined using the column definition of the sync table in the remote database. If the data in the consolidated database is longer than the one in the remote, the ODBC driver will warn the MobiLink server during data fetch. Then the MobiLink server will warn the user and stops messing up the remote database.
answered 03 Sep '14, 13:36