Working with identical clones results in some problems caused by the architecture of Identity
Manager. Using transports and schema extensions with such environments results in errors.
Schema extensions have a unique primary key which is stored in QBMRelation. This PK is computed from DataOrigin of the the database and a counter in the table DialogNextID. The DataOrigin of the database is a computed value, which helps to distinguish the environments.
When transports are created, these PK’s are included in order to identify the schema extension, thus avoiding collisions and data losses by overriding.
So virtual environments used for development purposes, cannot be 1:1 clones. This would result in PK-Violations on schema extension transports after schema extensions or on schema extensions after schema extension transports. Example:
- A schema extension is created from clone1 of a base system.
- This schema extension is transported to a clone2 stemming from the same base system.
- If there has been no schema extension so far in clone2, this transport will be successfully.
- Any further schema extension in clone2 will fail now.
- If there had been a schema extension in clone2 before the transport, the import of the transport will fail.
In both cases of failure, an attempt is made to make a schema extension with an already assigned PK.