FIM 2010 R2 Troubleshooting: Sync/Service Installation or upgrade Failure and Roll-Back
Case
FIM 2010 R2 service installation fails when connecting to remote SQL 2008 R2 SP2 server
Reference Infrastructure
FIM Test Server
- Windows Server 2008 R2
- FIM 2010 R2 installation media (also tested FIM 2010 R2 eval download)
SQL Server (other than FIM server)
- SQL Server 2008 R2 SP2
Symptoms
During setup, the wizard is able to connect to the SQL Server 2008 R2 SP2 server, and is able to create the FIMService DB or FIM Synchronization Service DB.
To connect to the SQL server, the SQL server name needed to be suffixed with the ",1433" port reference (or any other port)
Without the port reference the installation wizard throws an error and cannot connect to SQL.
But at the very end of the installation, you get a service start failure and the wizard then rolls back the setup.
Error message
When installing the FIM service the installation throws an error at the very end of the setup, while attempting to start the FIM Service:
Text message:
Service ‘Forefront Identity Manager Service’ (FIMService) failed to start. Verify that you have sufficient privileges to start system services.
Eventviewer
Application log on \SERVERNAME:
[XXX] Microsoft Resource Management Service
Type: ERROR
Computer: SERVERNAME.SUBDOMAIN.LOCALDOMAIN.be
Time: dd/mm/yyyy h:MM:ss PM ID: 0
Service cannot be started. System.UriFormatException: Invalid URI: The hostname could not be parsed. at Microsoft.ResourceManagement.Service.Application.Start() at System.ServiceProcess.ServiceBase.ServiceQueuedMainCallback(Object state)
[750] Microsoft.ResourceManagement.ServiceHealthSource
Type: ERROR
Computer: SERVERNAME.SUBDOMAIN.LOCALDOMAIN.be
Time: dd/mm/yyyy h:MM:ss PM PM ID: 2
The Forefront Identity Manager Service could not bind to its endpoints. This failure prevents clients from communicating with the Web services. A most likely cause for the failure is another service, possibly another instance of Forefront Identity Manager Service, has already bound to the endpoint. Another, less likely cause, is that the account under which the service runs does not have permission to bind to endpoints. Ensure that no other processes have bound to that endpoint and that the service account has permission to bind endpoints. Further, check the application configuration file to ensure the Forefront Identity Manager Service is binding to the correct endpoints.
[749] Microsoft Resource Management Service
Type: ERROR
Computer: SERVERNAME.SUBDOMAIN.LOCALDOMAIN.be
Time: dd/mm/yyyy h:MM:ss PM ID: 0
Service cannot be started. System.UriFormatException: Invalid URI: The hostname could not be parsed. at Microsoft.ResourceManagement.Service.Application.Start() at System.ServiceProcess.ServiceBase.ServiceQueuedMainCallback(Object state)
FIM Service files & config files
During installation (before roll back) the FIM Service configuration files are in place and can be checked.
But when the roll back starts, the wizard removes the files.
At rollback it's not possible to check the FIM service configuration any more.
Background info
SQL Server 2008 R2 (no SP)
The FIM 2010 (R2) Service had trouble connecting to SQL Server 2008 R2 SP2, but the install wizard succeeds connecting to a SQL Server 2008 R2 instance (no SP).
We did not test SQL 2008 SP1 (as the production server had SP2).
Registry Setting
FIM Sync service DB location
Check the server and instance configured for the FIM Sync database
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\FIMSynchronizationService\Parameters\Server
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\FIMSynchronizationService\Parameters\Instance
If any of the parameters references the port (like <server>,1433) then FIM might experience issues during installation or update.
FIM service DB location
Check the server and instance configured for the FIM Service database
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\FIMService\DatabaseServer
If any of the parameters references the port (like <server>,1433) then FIM might experience issues during installation or update.
Other tests
Cliconfig - validate alias
Start c:\windows\system32\cliconfig.exe.
Validate that an alias points to the SQLServer, SQL Server instance and/or port.
UDL File - test alias or direct connection
Create a new text file and rename the extension to UDL.
Doubleclick the UDL file.
Then enter the alias
Select the Windows credentials option.
Then check if you can find the FIM databases.
Solutions
Set an alias
Set an alias using SQL Server client network utility
c:\windows\system32\cliconfig.exe
Client connection manager installation
Next to the sql 2008 R2 native client, the SQL 2008 R2 Client Connection Manager needs to be installed.
With this manager, an SQL alias needs to be created, for port 1433, then the alias must be used in the installation wizard, without using the 1433 port (as the alias will translate it for you).
See also
References
- http://konab.com/working-with-sql-aliases/
- https://gavinmckay.wordpress.com/2011/10/03/howto-move-forefront-identity-manager-2010-databases-to-a-different-sql-server/