cancel
Showing results for 
Search instead for 
Did you mean: 

Difference between MobiLink Events definition and mlsrv.log

1,854

Good morning,

I am running SQL Anywhere 16 with MobiLink 16.0.0.2014 and I run into the following problem:

One of my tables is breaking the sync, when I try to send an update from the client to the consolidated database:

E. 2014-11-23 15:26:00. <1> [-10233] Table 'ZODB_CUSTOMERS_PARTNERS' does not have a column named 'TIMESTAMP'
E. 2014-11-23 15:26:00. <1> [-10058] Unable to open upload_update


When I check Sybase Central/MobiLink and switch to the Events tab, I see the following for the upload_update:

​ZODB_CUSTOMERS_PARTNERS (DBA): upload_update​
/* Update the row in the consolidated database. */

UPDATE "DBA"."ZODB_CUSTOMERS_PARTNERS"
SET "UPDKZ" = {ml r."UPDKZ"},
    "LASTNAME" = {ml r."LASTNAME"},
    "FIRSTNAME" = {ml r."FIRSTNAME"},
    "FUNCTION" = {ml r."FUNCTION"},
    "EMAIL" = {ml r."EMAIL"},
    "PHONE" = {ml r."PHONE"},
    "MOBILE" = {ml r."MOBILE"}
WHERE "SMSUSER" = {ml r."SMSUSER"}
    AND "EKUNNR" = {ml r."EKUNNR"}
    AND "EKUNPNR" = {ml r."EKUNPNR"}


However, when I look at the mlsrv.log, I see the following statement (difference in bold):

I. 2014-11-23 15:26:00. <1> upload_update ZODB_CUSTOMERS_PARTNERS

                /* Update the row in the consolidated database. */

                UPDATE "DBA"."ZODB_CUSTOMERS_PARTNERS"
                SET "UPDKZ" = {ml r."UPDKZ"},
                    "LASTNAME" = {ml r."LASTNAME"},
                    "FIRSTNAME" = {ml r."FIRSTNAME"},
                    "FUNCTION" = {ml r."FUNCTION"},
                    "EMAIL" = {ml r."EMAIL"},
                    "PHONE" = {ml r."PHONE"},
                    "MOBILE" = {ml r."MOBILE"}
                WHERE "SMSUSER" = {ml r."SMSUSER"}
                    AND "EKUNNR" = {ml r."EKUNNR"}
                    AND "EKUNPNR" = {ml r."EKUNPNR"}
                    AND {ml r."TIMESTAMP"} > "TIMESTAMP"


I do not have the TIMESTAMP column on the remote, only on the consolidated. Therefore {ml r."TIMESTAMP"} is leading to an error.

Is this working as designed? Or did I do something wrong?

Thanks for your help, Alex

Accepted Solutions (0)

Answers (2)

Answers (2)

jeff_albion
Product and Topic Expert
Product and Topic Expert

Have you perhaps updated the upload script in the consolidated, while the MobiLink server is still running? By default in version 16, MobiLink will not check for updated scripts after it starts - you must enable that process by using the mlsrv16 -zf switch (recommended for development, not for production).

Otherwise, restarting the MobiLink server should pick up any deployed script changes while the MobiLink server was previously running.

Former Member
0 Kudos

The Events tab in Sybase Central is showing the SQL that the model would create (when the model is deployed), not what is currently in the consolidated database. Perhaps the synchronization model has not been deployed to the consolidated database, or needs to be re-deployed? http://dcx.sybase.com/index.html#sa160/en/mlstart/mg-about-s-5363174.html

0 Kudos

Thank you Graham - the SQL displayed in Sybase Central is what is deployed to the consolidated. I am currently the only one the system.

VolkerBarth
Contributor
0 Kudos

What is the contents of the according script in the ml_script table? That should tell the real situation...