After a reboot of one of our Citrix servers in a PS4 farm, the OS booted up fine, but the IMA service did not start, and would not start if you tried to start it manually.
We received the errors below in the system log:
Event ID 3389
The Citrix Presentation Server failed to connect to the Data Store. ODBC error while connecting to the database: S1000 -> [Microsoft][ODBC Microsoft Access Driver] The Microsoft Jet database engine stopped the process because you and another user are attempting to change the same data at the same time.
Event ID 3609
Failed to load plugin ImaPsSs.dll with error IMA_RESULT_FAILURE
Event ID 3609
Failed to load plugin ImaRuntimeSS.dll with error IMA_RESULT_FAILURE
Event ID 3601
Failed to load initial plugins with error IMA_RESULT_FAILURE
Event ID 7024
The Independent Management Architecture service terminated with service-specific error 2147483649 (0x80000001).
After researching the error I found that this was a corruption in the Local Host Cache database. The Local Host Cache Database allows a farm server to function in the event the datastore is unreachable and it improves performance by caching information from the ICA clients. More info below:
The database itself is stored in the location below:
%ProgramFiles%\Citrix\Independent Management Architecture\imalhc.mdb
To fix this issue and start the IMA service you need to ensure that the datastore server is up, and then you can recreate the database using the command below:
This will rename the existing .mdb file, create a new database and sets the registry key below to force the server to communicate with the datastore once the IMA service is restarted, in order to repopulate the LHC database:
value = 1
The IMA service should then start up cleanly.