I'll start by clarifying a few points :
1) Dbmlsync never initially sends it's schema during a synchronization. It will generate an MD5 hash that represents the schema of the remote database and send that. If the MD5 hash is not a value recognizes by the MobiLink Server, it will send a message back down to the remote database and ask the remote to send the schema of the remote database, including the column names of all the tables. When it receives the schema, it then stores the MD5 hash and schema in memory, so that subsequent synchronizations using the same MD5 hash will not need to send their schema. An MD5 hash is not guaranteed to be unique, but there is only a 1 in 2^128 chance that a collision will occur (that's a number with 39 digits). I find it highly unlikely that we are running into an MD5 hash collision.
2) If remote databases have a different schema, even in the order of the columns, you should be using a different script version at the consolidated database to synchronize these different schemas. This is how MobiLink works. The link that Breck highlighted in the docs shows that, and when you use the Wizard in Sybase Central to create a Synchronization Model, the screen where you create the Remote Schema Name makes it clear that all databases should have the same schema.
3) Like Breck, I experimented with a different column orders at the remote database, but my testing didn't use Sybase Central and the Synchronization Model method, but runs in a DOS prompt and sets up an environment using SQL files. My testing showed the same results as Breck's testing. Using named parameters in the upload scripts resulted in the two remote database with different schemas that differ only in column order properly uploading their values into the desired columns in the consolidated database. However, there is no way to write a download_cursor script that will work for both schemas. Like Breck, I'll offer to send you the scripts I used that showed uploads working for me (downloads WILL fail!) if you provide your email address. Mine is firstname.lastname@sap.com (but clearly use my real first and last name).
I'll now address Arcady's last post.
It's still not clear to me how you created the three databases in your environment, but it's probably my unfamiliarity with the MobiLink plug-in in Sybase Central that is issue. I don't use the tool that often, since I find it easier to work with a set of SQL scripts and batch files that are quicker and more repeatable. A set of scripts will do exactly the same thing each time, and does not rely on clicking the same options in a Wizard from iteration to iteration. Could you please do one of the following :
a) Contact me to get a set of scripts you can modify to try and show me the problem you are seeing. I will send you a reproducible that I believe describes your environment that does not exhibit the behaviour you describe, and you can modify the scripts to show the behaviour you are seeing.
b) Reproduce the issue as you described with a single table using Sybase Central, and then provide the consolidated database, as well as the two remote databases in question that exhibit the behaviour. Please leave the DBA password unchanged from the default if you do this. I can provide a secure link you can use to upload the databases if you choose this route.
c) Provide a more detailed set of steps to reproduce the issue using Sybase Central. Start by defining a brand new Synchronization Model, and describe exactly what you do in each step, on the assumption that the person who is reading your instructions has never used Sybase Central before.
Thanks,
Reg Domaratzki