The system that I work on used to use InterSystems' Object Synchronization feature quite heavily to keep multiple servers around the world in sync. There was one main server with about 5 "satellite" servers. The InstanceGUID of the main server was used to support Object Synchronization. When we had to clone the main server, in order to maintain proper syncing with the "satellite" servers, we reset the cloned instance with the instance GUID of the original system.
To quote a colleague at ISC:
The instance guid is used for more than one purpose but
it is supposed to be unique to the instance. Its probably best
after cloning an instance to set this to a new value (assuming the
cloned instance isn't supposed to replace the old instance).
Since our clone was replacing the old one, we used the steps below to set the instanceGUID of the new instance with the GUID of the old one (and retired the old system).
The original purpose of this document was to list the steps to create an exact copy of the original Hermes machine, including its role as the object-synchronization partner with other servers around the world. In order to fill this role, some additional steps were needed and these are listed here:
- Get the unique “InstanceGUID” of the LEGACY instance of Caché by running the following command on LEGACY. Save the GUID that results from the command; it will be used later:
- HERMES>w ##class(%SYS.System).InstanceGUID()
- Assign this value to the new Hermes instance on NEW by issuing the following commands in the Caché Terminal on NEW:
- s ns = “^^”_$zu(12)
- s ^[ns]SYS(“INSTANCEGUID”)=”<Guid from Step 3 above>”
- w ##class(%SYS.system).InstanceGUID()
Note that this is something that should be done unless really necessary, but it is possible.