After successfully installing the ILM2 RC0 server, my next goal was to migrate the data, MAs and extension dlls from a production ILM 2007 server.
Copying the database
One of the great things about ILM is that all configuration is contained in the MicrosoftIdentityIntegrationServer database. So I need only backup the database and then restore it to the new server. Once the Sync Service has been configured to use the new database I should find all my MAs, data and Extension dlls exactly where they should be.
I also needed a copy of the keyset file from the old server. (If you can’t remember where you put it then just export a new one using miiskmu.exe.)
Restoring the database
I found that I had to remove the existing database before I could restore the copied one. I also stopped the Microsoft Identity Integration Server service before beginning.
Reinstalling the Sync Service
I may have been able to attach the new database by using miisactivate.exe, but actually I just went the approach of uninstalling and then reinstalling the Sync Service.
I got a couple of error messages about missing reg keys during the uninstall, but it completed nonetheless. The reinstall went fine and was quite happy to accept the restored database.
It all looked ok…
Everything appeared to be there – until I tried to Sync an MA and got a stopped-extension-dll-invalid-assembly. In the event log is Event 6157 with “The management agent “AD” failed on run profile “Full Sync”. The run step stopped because the extension dll “MVExtension.dll” is not a valid assembly and could not be loaded.”
Recompiling the code
I initially tried just recompiling an extension in VS2008, but that wasn’t enough.
I then created a new extension project and noticed that MicrosoftIdentityIntegrationServer.dll has been replaced by MicrosoftIdentityIntegrationServerEx.dll. I tried updating my references and recompiling, but the dlls would still not load.
In the end I created new extension projects for the Metaverse and all my MAs and then copied the code across from the old files. After compiling these new dlls, and updating the Extension settings in the MAs, the sync jobs ran!
While fiddling with the extensions I noticed that MicrosoftIdentityIntegrationServer.Logging has gone missing. This is certainly no great loss for me, I much prefer writing to the Event Log, but some of the code I was porting did make use of it. It’s all commented out now and I will have to put something else in place when I eventually do this migration for real.
The other odd thing was that the MIIS service stopped every time I updated the Extensions folder, and I had to manually restart it. I sincerely hope this is not a new “feature”!
I may have managed to get this ILM2 installation looking pretty much like the old ILM 2007 one, but when I tried to add an ILM type MA (this is the one that connects it to the ILM Portal database) I’m getting an error: “Unable to create the management agent. The XML format of the join rules is invalid.”
I guess I’m not there yet…