on 2021 Jul 19 5:26 AM
I have the following problem:
In an existing mobilink installation I added a new mobilink client ( I took an existing client C1 and Unloaded it in a new (with dbinit)created DB, then configured this DB as a new client C9).
I configured the mobilink Client also on this new C9 so I can see now C9 in the SYSSYNC.
On the server (SQL-17) I added the new remote user and I can see it in ml_user.
I have the problem that C9 connects to the server as C1.
How does mlsrv17 exactly match the rows in ml_subscription? does it match it with the user (ml_user) or with the remote_id (ml_database)?
How can I find the remote_id on the client, to check whtether it matches with the value in ml_database on the server?
Request clarification before answering.
I found it, it is simply in SYSOPTION!!!
But weird, why the mlsrv17 considers the rid and not the user_id!!!!!
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
The ml_remote_id is used to uniquely identify a DATABASE in the synchronization system. This value will typically be used for no other reason than to ensure that all the data you've defined as wanting to synchronize from this database is applied to the consolidated database once and exactly once.
The MobiLink user_id is used to uniquely identify an ENTITY in the synchronization system, such as a person. This value will typically be used to define the subset of data from the consolidated database that is synchronized to the remote database.
As the documentation states ( https://help.sap.com/viewer/61ecb3d4d8be4baaa07cc4db0ddb5d0a/17.0/en-US/8146ea136ce2101495c491b57981... ), it is perfectly valid for you to execute the SET OPTION command to manually set or change the ml_remote_id value. We would strongly recommend using a GUID, to easily ensure uniqueness across your system. The maximum length of the remote_id value is 128, as defined by the size of the remote_id column in the ml_database table in the consolidated database. You should always be careful to ensure that every ml_remote_id value in your synchronization system is unique. As you discovered, when you unload and reload a remote database that has already synchronized, the ml_remote_id value persists across the rebuild, and you now have duplicate values in your system, which is A Very Bad Things. If you do this on a regular basis, you should ensure that you either change the ml_remote_id value on the new database (or set to NULL so a GUID is automatically chosen on the first synch) after the rebuild and before the first synchronization on the new database.
Reg
Thanks for the explanation, what exactly means GUID? I do understand it is enough to set it to NULL then the first start of dbmlsync will set the proper value for it.
One more question, was the behaviour of ml_remote_id value persists across the rebuild also the same with Anywhere 10? I don't think so.
> We would strongly recommend using a GUID, to easily ensure uniqueness across your system.
Really? GUIDs are a nightmare for administrative purposes. My preference is for the central administrator to assign unique numbers 1, 2, 3 as remote databases are created, use the same number as the mobilink user name for each database, and to keep strict control...
This practice is described here: https://help.sap.com/viewer/089ddfd5963649299c74e12feeacb0b6/17.0/en-US/81abaf0e6ce21014847ab9ed9645...
...but, I'm not an administrator, so what do I know? 🙂
> I don't think so
You (as administrator) are 100% responsible for the remote id... dbunload doesn't have any say in the matter, and never has 🙂
> what exactly means GUID?
I agree with you. I don’t like GUIDs, if they are used everywhere. This is a guid-hell, when people use them left and right.
> guid-hell
A.K.A. the Windows Registry
User | Count |
---|---|
52 | |
6 | |
5 | |
5 | |
5 | |
4 | |
3 | |
3 | |
3 | |
3 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.