This week's book giveaway is in the OCPJP forum. We're giving away four copies of OCA/OCP Java SE 7 Programmer I & II Study Guide and have Kathy Sierra & Bert Bates on-line! See this thread for details.
I looked around quite a bit for a resolution to this issue with IHS and WAS but never found anything. Since I'm betting someone else eventually has the same issue, I thought I'd post it here so it won't get lost forever in a dusty corner of my brain.
IBM Http Server 6.0 (a.k.a. IHS or Apache 2 with various IBM WebSphere plugin modules) running as a service on Windows 2000 Advanced Server fails to start Automatically when the machine boots up. The System Event Log then contains a "Service Control Manager" event with an ambiguous message stating that "The IBM HTTP Server 6.0 service terminated with service-specific error 1." There are no messages in any of the web server log files no matter what the LogLevel, and no additional information in the system event object. To make things more mysterious, IHS then starts without problems after the machine has finished initializing.
The cause: (not confirmed but strongly suspected)
The WAS plugin module fails to initialize because it attempts to communicate with the WebSphere 6 service prematurely (i.e. while WAS is still initializing too). The "suspected" part is that the IHS service terminates because the WAS plugin is not programmed to handle some sort of exception gracefully and the whole IHS process just crashes as a result.
The resolution: (at least this worked for me)
Add a dependency in the service configuration for the IHS service so that it waits to start until the WebSphere service has finished starting up.
a. Start regedt32 and navigate to "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services" key b. Copy the full service name for the "IBMWAS6Service - ???" service to the clipboard (The ??? part will be node name suffix based on the machine name) c. Open the "IBMHTTPServer6.0" service key, edit the DependOnService REG_MULTI_SZ value, add a line (there should already be 2 dependencies, Tcpip and Afd, in the list), and paste in the WAS service name from the clipboard on the new line.
(Note: regedit.exe won�t work because it doesn't have a proper editor for REG_MULTI_SZ values. regedt32.exe allows these values to be edited more easily. I guess that's one of the reasons why regedt32 still around.)
Hope this ends up helping someone. It was sure a headache getting it narrowed down. BTW, I think this problem usually affects WebSphere running on a multiple processor machine since there's probably a natural serialization effect on single processor machines that might avoid the whole parallel, concurrent startup issue.