our customer has 2 businesses, 2 separate databases, both on the same Win 2008 Server. he wants our mobile solution for both of his businesses.
can i start 2 mobilink servers, using different ports and dsn's, on the same Win Server and "point" the users for Biz1 to Mobilink1 and users for Biz2 to Mobilink2?
(I changed the title and question to match the comment... hope I got it right... Breck :)
Yes, you can start two ML Servers on the same machine. Assuming you are using TCP/IP to synch, it might look something like :
mlsrv12 -c dsn=Biz1 -x tcpip(port=8001) mlsrv12 -c dsn=Biz2 -x tcpip(port=8002)
Now, at the remote sites, when you define the synchronization subscriptions, it would look something like :
CREATE SYNCHRONIZATION SUBSCRIPTION TO Biz1_pub FOR Biz1_User1 TYPE 'TCPIP' ADDRESS 'host=machine_name;port=8001' SCRIPT VERSION 'Biz1_sv';
CREATE SYNCHRONIZATION SUBSCRIPTION TO Biz2_pub FOR Biz2_User1 TYPE 'TCPIP' ADDRESS 'host=machine_name;port=8002' SCRIPT VERSION 'Biz2_sv';
When you start the MobiLink Server, you specify a connection string to a single consolidated database. That single consolidated database could be to a high-availability ASA solution with read-only scale-out nodes, which in theory would be multiple ASA databases.
The MobiLink Server could connect to a single ASA database, but that database could have proxy tables that link to multiple ASA database.
Multiple ASA clients can all synchronize to the MobiLink Server at the same time, but I don't think that's you mean by "connect".
Can you describe the problem you are trying to solve?
answered 10 Apr '12, 13:31
No and yes.
There can only be one consolidated database per MobiLink server (or ML server farm).
However, SA supports remote servers via the "OMNI" feature. You can add remote tables but there will be no transaction coordination, so it won't be robust if you're updating more than one database, and hence is not recommended. You may only update one database (ie. the consolidated), or you may even tolerate the lack of robustness, but that decision must be yours and should not be taken lightly.
You can implement Java or .NET scripting logic to connect to as many other data sources (including databases, files, whatever) you want. However, if you update more than one of them you won't have transaction coordination, so it wouldn't be robust and is not recommended. You may only update one database (ie. the consolidated), or you may even tolerate the lack of robustness, but that decision must be yours and should not be taken lightly.
Finally, MobiLink supports the concept of a system database (MLSD), which stores synchronization state and can optionally be a separate database from the consolidated database. This is only supported on Windows because for robustness it requires a third-party transaction coordinator. The application can't do anything with the MLSD, however, so I include this point only for completeness regarding your question.
I'm curious, what is the motivation behind your question?
answered 10 Apr '12, 13:56