Thursday, September 3, 2009

BizTalk ESB Exception Notification, ESB UDDI Publishing services won't start on boot

I've recently installed BizTalk 2009 on a new virtual machine (Windows Server 2003) I created. I also installed the ESB 2.0 Toolkit and the UDDI 3.0 services as well.

After each time I would boot up the machine, I would get the almighty "At least on service has failed" message. After looking into the event viewer, I noticed two outstanding errors:
'Microsoft.Practices.ESB.AlertService.AlertException' occurred and was caught.
and
Cannot open database "ESBAdmin" requested by the login. The login failed.

However, if I manually started the BizTalk ESB Exception Notification and BizTalk ESB UDDI Publishing services after all services completely started, they would start up just fine.

Both appeared to be database errors. To a degree they are, but I think it's because the MSSQLSERVER service hasn't completely finished "starting up".

It also seemed to me that the ESB services were starting before the BizTalk Server services, which didn't make much sense to me.

My solution was to create two entries in the registry:
1)Navigate to HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\BizTalk ESB Exception Notification
2) Create a new multi-string value called DependOnService (case-sensitive)
3) Add entry to this value: BTSSvc$BizTalkServerApplication

Do the same thing with HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\BizTalk ESB UDDI Publishing. I also added MSSQLSERVER and SQLSERVERAGENT values to the two, just to be safe.

Now my services are starting like they should when a restart/bootup occurs on the BizTalk server.