SYMPTOMS
Consider
the following scenario. You perform one of the following actions in Microsoft SQL Server 2005:
- You restore an msdb backup.
- You attach an msdb database.
- You change the information in the syssubsystems table in the msdb database.
The paths to the SQL Server Agent subsystem DLLs are stored in the
msdb.dbo.syssubsystems table in the
msdb database.
The locations do not correspond to the current locations of the binaries for
the instance of SQL Server 2005. In this scenario, an error occurs.
The following error message may be logged in the SQL Server Agent log or in the
Job step history:
Subsystem %s could not be loaded
(reason: The specified module could not be found)
When this error
occurs, jobs may fail. Additionally, the following error message may be logged
in the Job steps history:
Unable to start execution of
step 1 (reason: The %s subsystem failed to load [see the SQLAGENT.OUT file for
details]; The job has been suspended). The step failed.
The following
error is logged in the SQL Server Agent logs:
2006-01-24
14:02:41 - ! [125] Subsystem %s could not be loaded (reason: The specified
module could not be found)
RESOLUTION
To work around this problem, delete the entries from the
msdb.dbo.syssubsystems table, and then repopulate the entries. The following steps will update the subsystem DLLs to the
correct path based on the current install folder. To do this, follow these
steps:
- In SQL Server Management Studio, run the following script.
use msdb
go
delete from msdb.dbo.syssubsystems
exec msdb.dbo.sp_verify_subsystems 1
go
- Stop and then restart the SQL Server Agent
service.