Odd hex code instead of log messages when using my Domino Start Script
The most common question I get about my start script is about an issue with missing or wrong setup res files causing hex number output instead of the log messages.
I am still not sure why the res directory is created in the wrong way but I want to raise the awareness for this issue and try to explain the background.
I will also document in in the next version of my start script in the troubleshooting section.
In some cases when you start the Domino server with my start script you see hex codes instead of log message.
The output looks similar to this instead of real log messages.
12.03.2010 13:59:31 07:92: 0A:0A
12.03.2010 13:59:31 03:51: 07:92
Here is the background about what happens:
Domino uses string resources for error messages on Windows which are linked into the binary.
On Unix there are normally no string resources and IBM/Lotus uses the res files created on Windows in combination which code that reads those string resources for error output.
In theory there could be separate version of res files for each language and there used to be res files which have been language dependent.
So there is code in place in Domino to check for the locale and find the right language for error message.
But there are no localized resources for the error codes any more since Domino ships as English version with localized language packs (not containing res files any more).
This means there is only one set of res Files in English containing all the error text for the core code (a file called strings.res) and one per server tasks using string resources.
Most business partner applications do not leverage string resources and use other log calls. One of my application used a res files (nshdbcat) but it was always complicate to also write the nshdbcat.res into the right directory and to explain what it does.
So string resources contain all the error texts and if Domino does not found the res files the server will only log the error codes instead.
By default the res files should be installed into the standard local of the server called "C".
In some cases the installer does copy the res files into a locale specific directory. For example ../res/de_DE for German.
I personally never had any case but I get a mail at least once per month from somone installing my start script who is running into this issue.
My start script sets the locale of the server. For example to LANG=de_DE or LANG=en_US.
If this locale is different than the locale you installed the server with, the Domino server will not find the res files in those cases.
The right location for the res files would be for example on Linux:
/opt/lotus/notes/latest/linux/res/C/strings.res
But in some cases it looks like this
/opt/lotus/notes/latest/linux/res/de_DE/strings.res
The solution for this issue is to move the de_DE directory to C (e.g. mv de_DE C) and your server will find the res files independent of the locale configured on the server.
It's not an issue my start script could handle directly. I could put in a sanity check if at least the strings.res can be found and give out an error message.
Do you think a check in the script logic would make sense? Or would an info in the troubleshooting section of my start script be sufficient?
-- Daniel
- Comments [5]