The forum will be down for maintenance over the weekend of August 18-20, 2017. The forum will be shut down on the evening (EDT) of Friday, August 18. Downtime is unknown but may be up to two days. The forum will be restarted as soon as maintenance is complete.

Our clients have different replication needs; some want this, some want that, some want both.

This leads to an unhappy replication maintainer (me) since changes to common logic often involves changing ( +testing, deployment) multiple customer-specific profiles.

To avoid this I have started to look into how I can split the synchronization profiles in smaller parts. Instead of having these large profiles I want to have a lot of smaller sync profiles common for all customers. Then they can choose what parts and profiles they want to set up.

ATTEMPT 1, Two synchronization profiles - Profile1 & Profile 2

After having deployed the profiles from the MobiLink project in Sybase Central this is the .cmd file that will perform synchronization for the client:

First thing I thought for myself was "Of course they have different script versions, why would I set up duplicate synchronization for the same script version?", but I'm pretty sure I've missed something.

They do have different script versions, "Profile1 ver 1" and "Profile 2 ver 1". I suspect I would create a lot of havoc in the consolidated database if I started to deply several models with the same script version (don't know if it's even allowed, I haven't dared to try).

Is another way to synchroniza multiple subscriptions in one go ? My first attemt does work, but it seems a bit cumbersome to call dbmlsync.exe once for each publication I want to synchronize.

Both publications cover a separate subset of data

One dataset/publication may depend on another, in that case I need to set the order of synchronization.

Per remote database, all subscriptions are subscribed by the same remote user.

All publications/subscriptions/sync profiles target the same consolidated database.

AFAIK, dbmlsync -s can be used multiple times, and it makes a difference whether you use "-s sync1,sync2" or -s sync1 -s sync2". What happens when you specify "s=Profile1;s=Profile2;..." in the sync profile?

Setting -s "Profile1, Profile2" as åarameters to dbmlsync.exe gives me E. 2012-10-10 13:00:48. Subscriptions Profile1 and Profile2 cannot be synchronized together because they have different script versions.

Same if I set both subscriptions in one sync profile and try to sync that one only.

-s Profile1 -s Profile 2 works. However, I encountered something strange there. I have to specify the password as a parameter to dbmlsync (-mp ***). Setting the same password as the MobiLinkPwd extended option for the Synchronization Subscription does not work. That just gives me E. 2012-10-10 13:09:26. Invalid MobiLink username, password or script version. and I have to specify the password in a dbmlsync popup window.

When using "dbmlsync -s Profile1 -s Profile2" you are specifying two subscriptions but not two synchronization profiles. Therefore I'm surprised that this does work at all. Or are your subscriptions and sync profiles identically named?

As such I would (wildly!) guess that the rest of the command line parameters is then applied to both subscriptions (but may not fit to both).

What happens when you use "dbmlsync -sp Profile1 -sp Profile2" to specify both sync profiles? (I even don't know of this is allowed - but if so, it should allow to use different options like mp or u as these can be specified differently for both sync profiles.)

Just to be clear, while deploying different sync models to the same script version likely won't work, you can have different subscriptions synchronizing to the same script version. This would mean leaving the comfort zone of the modeller and going a more manual route.

Also, you can specify script versions in many different places, including at the subscription level. One option is to remove the ScriptVersion (sv) option from the subscription level and always specify it on the command line. This would avoid the "cannot be synchronized error" above.