Search code examples
sybasemobilinkultralite

SQLE_NOT_PUBLIC_ID Sybase mobilink error


I am working on an ios project that has a Sybase (ultralite) database that is synchronized with a Sybase Sql Anywhere 12 database using mobilink.

Everything was properly, until i decided today to add some fields to the main database so that they synchronize to the main database.

I have updated the schema of the consolidated database from the main engine, then i have updated the schema of the remote database from the consolidated engine, and then i mapped the added fields together, and I deployed a new ultralite database. Please note that it's not the first time I do a similar task, i always add fields, and sync databases..

after the update, when i synchronize using the blank ultralite database, mobilink will fail giving only this error: Synchronization Failed: -1305 (MOBILINK_COMMUNICATIONS_ERROR) %1:201 %2: %3:0

I have researched Error Number 201 in sybase and it points to: SQLE_NOT_PUBLIC_ID and in the sybase documentation the error's probably cause is:

"The option specified in the SET OPTION statement is PUBLIC only. You cannot define this option for any other user."

I have tried to redeploy, I have tried to move the engine to a windows pc, all give the same error.. and i have no clue where this SET OPTION statement came from and how can i solve it..

Any hints are appreciated!


Solution

  • The problem was just caused by small network timeout value while setting up mobilink parameters.

    info.stream_parms = (char*) @"host=192.168.0.100;port=3309;timeout=1"
    

    i just changed the value from timeout=1 to timeout=300 and it worked!