Changing case/capitalisation on Identity Broker attribute names

UNIFY’s Identity Broker keeps old attribute names (both connector and adapter), in the ‘CollectionKey’ SQL table.  The attribute’s name (‘Caption’ column) is a unique key in that table.

Even if you delete an attribute from every connector and adapter in Broker, it still keeps that attribute name record.  Even if you delete all data for the attribute!  It’s there for good, with whatever capitalisation you first used.

If you try to use that same attribute name with a different capitalisation (e.g. in an Rename adapter transformation) Broker does a case-sensitive search for that attribute name’s CollectionKey record and doesn’t find it (because the case doesn’t match).  So it tries to create one… but this fails because the SQL unique key for the Caption field is case insensitive!  The error is:

Violation of UNIQUE KEY constraint 'DF_CollectionKey_Caption'.
Cannot insert duplicate key in object 'dbo.CollectionKey'.
The duplicate key value is (xxxx).

Solutions to this predicament are:

  1. Don’t ever change the capitalisation of the attribute name (avoidance)
  2. If you have to change it (e.g. because you got it wrong in the first place) then go into the SQL table and change the Caption to whatever capitalisation you want 🙂

Failure creating new ECMA2 MA: Exception from HRESULT: 0x8023072A

While creating a new ECMA2 MA, I was faced by this error: “Exception from HRESULT: 0x8023072A”

The only helpful info I found was this, buried deep in https://winprotocoldoc.blob.core.windows.net/productionwindowsarchives/WinArchive/[MS-UPSDBDAP].pdf

0x8023072A extension-dll-noimplementation
The management agent extension does not contain a class that implements the extension interface(s).

Turns out the DLL I was using (UNIFY Identity Broker) was an old ECMA one, not ECMA2.