A customer of mine was getting an error message when trying to start his Acuate 9 iServer service.  The service would respond with the error message “The service did not respond in a timely fashion.”  Which doest mean anything to you or me.  So I copied the path to executable statement that the service was trying to start in to a command prompt windows so that I could see any output from the command. Here is the output:

C:\>"d:\PROGRA~1\Actuate9\iServer\bin\pmd9.exe"
ICU_DATA is not set

So I checked my system environment variables and saw that the ICU_DATA variable was set to c:\windows\system32

c:\> Set
...
ICU_DATA=c:\windows\system32\
...

I attempted to Google the error message and only came up with a few pages and most didn’t help. I then searched the d:\program files\Actuate9\iServer folder looking for any file that contained the words ICU_DATA. It did have a hit but it was with a HTML help document that didn’t help.
I then decided to search the c:\windows\system32 directory, since this is where ICU_DATA is pointed, for any file that contains the letters “icu” in hopes to find something. I came up empty handed. I then decided to do the same searches on a test Actuate 9 server that I have. This time the search did find something. Two files in the system32 directory named acicudt18_71.dll and acicudt18_71w.dll. I then copied these two files to the c:\windows\system32 directory on my customers server and I was then able to start the Actaute 9 iServer service and they were very happy.

Here is a zip file containing these two dlls just in case you need them and don’t have a test server to copy them from.

Why were these files missing?  I am not sure and didnt have a chance to investigate.  I decide to write this post in hopes that it helps someone else that is having this issue since there is very little data about the ICU_DATA variable on Google