Is IdentitySignatureUUID (new to v17) useful as a globally unique database dbinit instance identifier? (which would be a very good thing)
Both are documented as "This property is for internal use only."
Both seem to be unique to a physical .db file created by a separate run of dbinit, and both seem to survive a restart.
SELECT DB_PROPERTY ( 'IdentitySignature' ), DB_PROPERTY ( 'IdentitySignatureUUID' ); -- for database 1... DB_PROPERTY('IdentitySignature'),DB_PROPERTY('IdentitySignatureUUID') '218646270','165c6939-65ef-4770-b53c-03cca8a313cf' -- for database 2... DB_PROPERTY('IdentitySignature'),DB_PROPERTY('IdentitySignatureUUID') '218647726','2dc26698-ae53-46ac-8624-63d2701645bd'
asked 18 Nov '15, 16:56
Each time you create a database it is given a unique "signature". This has been true for 20+ years. This signature is used (for example) to check that the dbspaces and transaction log file match the system dbspace.
New to v17 is the unique signature UUID. This was added since the signature field did not contain sufficient bits to actually guarantee uniqueness - i.e. it is highly unlikely but it is possible to create two databases that would end up having the same signature (exercise left to the reader ;-). This new UUID field resolves the problem.
The two database properties - IdentitySignature and IdentitySignatureUUID - provides a method for a database user to get these two database signatures.
answered 25 Nov '15, 09:08