patternsqlMinor
SQL Server 2012 Job History Missing
Viewed 0 times
2012historysqlmissingserverjob
Problem
I have a SQL Server 2012 database with a number of Agent jobs. The jobs run without a problem but the job history is always empty. Why?
I also note that running a job manually (right click and "Start Job at Step...") will run the job but the window showing progress of the job never closes. It is as if the job steps complete but the job itself never completes.
All tasks have been executed as a sysadmin so permissions should not be an issue.
Running the jobs via
I've done all the usual checking/changing of
I also note that running a job manually (right click and "Start Job at Step...") will run the job but the window showing progress of the job never closes. It is as if the job steps complete but the job itself never completes.
All tasks have been executed as a sysadmin so permissions should not be an issue.
Running the jobs via
sp_start_job results in the jobs completing but still no job history.I've done all the usual checking/changing of
jobhistory_max_rows_per_job etc.Solution
You could use the following query to obtain all the details about how SQL Server, including SQL Server Agent, is configured, which might show you where something is configured incorrectly:
```
DECLARE @MasterPath nvarchar(512);
DECLARE @LogPath nvarchar(512);
DECLARE @ErrorLog nvarchar(512);
DECLARE @ErrorLogPath nvarchar(512);
SELECT @MasterPath=substring(physical_name, 1, len(physical_name) - charindex('\', reverse(physical_name)))
FROM master.sys.database_files
WHERE name=N'master';
SELECT @LogPath=substring(physical_name, 1, len(physical_name) - charindex('\', reverse(physical_name)))
FROM master.sys.database_files
WHERE name=N'mastlog';
SELECT @ErrorLog=cast(SERVERPROPERTY(N'errorlogfilename') as nvarchar(512));
SELECT @ErrorLogPath=substring(@ErrorLog, 1, len(@ErrorLog) - charindex('\', reverse(@ErrorLog)));
DECLARE @SmoRoot nvarchar(512);
EXEC master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE'
, N'SOFTWARE\Microsoft\MSSQLServer\Setup'
, N'SQLPath'
, @SmoRoot OUTPUT;
IF OBJECT_ID('tempdb..#tmp_sp_get_sqlagent_properties') IS NOT NULL
DROP TABLE #tmp_sp_get_sqlagent_properties;
CREATE TABLE #tmp_sp_get_sqlagent_properties
(
auto_start int null
, msx_server_name sysname null
, sqlagent_type int null
, startup_account nvarchar(255) null
, sqlserver_restart int null
, jobhistory_max_rows int null
, jobhistory_max_rows_per_job int null
, errorlog_file nvarchar(255) null
, errorlogging_level int null
, error_recipient nvarchar(30) null
, monitor_autostart int null
, local_host_server sysname null
, job_shutdown_timeout int null
, cmdexec_account varbinary(64) null
, regular_connections int null
, host_login_name sysname null
, host_login_password varbinary(512) null
, login_timeout int null
, idle_cpu_percent int null
, idle_cpu_duration int null
, oem_errorlog int null
, sysadmin_only int null
, email_profile nvarchar(64) null
, email_save_in_sent_folder int null
, cpu_poller_enabled int null
, replace_alert_tokens_enabled int null
);
INSERT INTO #tmp_sp_get_sqlagent_properties
(
auto_start
, msx_server_name
, sqlagent_type
, startup_account
, sqlserver_restart
, jobhistory_max_rows
, jobhistory_max_rows_per_job
, errorlog_file
, errorlogging_level
, error_recipient
, monitor_autostart
, local_host_server
, job_shutdown_timeout
, cmdexec_account
, regular_connections
, host_login_name
, host_login_password
, login_timeout
, idle_cpu_percent
, idle_cpu_duration
, oem_errorlog
, sysadmin_only
, email_profile
, email_save_in_sent_folder
, cpu_poller_enabled
, replace_alert_tokens_enabled
)
EXEC msdb.dbo.sp_get_sqlagent_properties;
DECLARE @DatabaseMailProfile nvarchar(255);
DECLARE @AgentMailType int;
DECLARE @ServiceStartMode int;
DECLARE @ServiceAccount nvarchar(512);
DECLARE @AgtGroup nvarchar(512);
EXEC master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE'
, N'SOFTWARE\Microsoft\MSSQLServer\SQLServerAgent'
, N'DatabaseMailProfile'
, @param = @DatabaseMailProfile OUT
, @no_output = N'no_output';
EXEC master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE'
, N'SOFTWARE\Microsoft\MSSQLServer\SQLServerAgent'
, N'UseDatabaseMail'
, @param = @AgentMailType OUT
, @no_output = N'no_output';
EXEC master.sys.xp_instance_regread 'HKEY_LOCAL_MACHINE'
, 'SYSTEM\CurrentControlSet\Services\SQLSERVERAGENT'
, N'Start'
, @ServiceStartMode OUTPUT;
EXEC master.sys.xp_instance_regread 'HKEY_LOCAL_MACHINE'
, 'SYSTEM\CurrentControlSet\Services\SQLSERVERAGENT'
, N'ObjectName'
, @ServiceAccount OUTPUT;
EXEC master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE'
, N'SOFTWARE\Microsoft\MSSQLServer\Setup'
, N'AGTGroup'
, @AgtGroup OUTPUT;
SELECT Items.*
FROM #tmp_sp_get_sqlagent_properties AS tsgsp
CROSS APPLY (VALUES
('Name', CAST(serverproperty(N'ServerName') AS sql_variant))
, ('MsxServerName', ISNULL(tsgsp.msx_server_name,N''))
, ('JobServerType', CONVERT(sql_variant, tsgsp.sqlagent_type))
, ('SqlServerRestart', CONVERT(sql_variant, tsgsp.sqlserver_restart))
, ('SqlAgentRestart', CONVERT(sql_variant, tsgsp.monitor_autostart))
, ('MaximumHistoryRows', CONVERT(sql_variant, tsgsp.jobhistory_max_rows))
, ('MaximumJobHistoryRows', CONVERT(sql_variant, tsgsp.jobhistory_max_rows_per_job))
, ('ErrorLogFile', CONVERT(sql_variant, tsgsp.errorlog_file))
, ('AgentLogLevel', CONVERT(sql_variant, tsgsp.errorlogging_level))
, ('NetSendRecipient', CONVERT(sql_variant, ISNULL(tsgsp.error_recipient,N'')))
, ('AgentShutdownWaitTime', CONVERT(sql_variant, tsgsp.job_shutdown_timeout))
, ('SqlAgentMailProfile', CONVERT(sql_variant, ISNULL(tsgsp.email_profile,N'')))
, ('SaveInSentFolder', CONVERT(sql_variant, CAST(tsgsp.email_save_in_sent_folder AS bit)))
, ('WriteOemErrorLog', CONVERT(sql_variant
```
DECLARE @MasterPath nvarchar(512);
DECLARE @LogPath nvarchar(512);
DECLARE @ErrorLog nvarchar(512);
DECLARE @ErrorLogPath nvarchar(512);
SELECT @MasterPath=substring(physical_name, 1, len(physical_name) - charindex('\', reverse(physical_name)))
FROM master.sys.database_files
WHERE name=N'master';
SELECT @LogPath=substring(physical_name, 1, len(physical_name) - charindex('\', reverse(physical_name)))
FROM master.sys.database_files
WHERE name=N'mastlog';
SELECT @ErrorLog=cast(SERVERPROPERTY(N'errorlogfilename') as nvarchar(512));
SELECT @ErrorLogPath=substring(@ErrorLog, 1, len(@ErrorLog) - charindex('\', reverse(@ErrorLog)));
DECLARE @SmoRoot nvarchar(512);
EXEC master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE'
, N'SOFTWARE\Microsoft\MSSQLServer\Setup'
, N'SQLPath'
, @SmoRoot OUTPUT;
IF OBJECT_ID('tempdb..#tmp_sp_get_sqlagent_properties') IS NOT NULL
DROP TABLE #tmp_sp_get_sqlagent_properties;
CREATE TABLE #tmp_sp_get_sqlagent_properties
(
auto_start int null
, msx_server_name sysname null
, sqlagent_type int null
, startup_account nvarchar(255) null
, sqlserver_restart int null
, jobhistory_max_rows int null
, jobhistory_max_rows_per_job int null
, errorlog_file nvarchar(255) null
, errorlogging_level int null
, error_recipient nvarchar(30) null
, monitor_autostart int null
, local_host_server sysname null
, job_shutdown_timeout int null
, cmdexec_account varbinary(64) null
, regular_connections int null
, host_login_name sysname null
, host_login_password varbinary(512) null
, login_timeout int null
, idle_cpu_percent int null
, idle_cpu_duration int null
, oem_errorlog int null
, sysadmin_only int null
, email_profile nvarchar(64) null
, email_save_in_sent_folder int null
, cpu_poller_enabled int null
, replace_alert_tokens_enabled int null
);
INSERT INTO #tmp_sp_get_sqlagent_properties
(
auto_start
, msx_server_name
, sqlagent_type
, startup_account
, sqlserver_restart
, jobhistory_max_rows
, jobhistory_max_rows_per_job
, errorlog_file
, errorlogging_level
, error_recipient
, monitor_autostart
, local_host_server
, job_shutdown_timeout
, cmdexec_account
, regular_connections
, host_login_name
, host_login_password
, login_timeout
, idle_cpu_percent
, idle_cpu_duration
, oem_errorlog
, sysadmin_only
, email_profile
, email_save_in_sent_folder
, cpu_poller_enabled
, replace_alert_tokens_enabled
)
EXEC msdb.dbo.sp_get_sqlagent_properties;
DECLARE @DatabaseMailProfile nvarchar(255);
DECLARE @AgentMailType int;
DECLARE @ServiceStartMode int;
DECLARE @ServiceAccount nvarchar(512);
DECLARE @AgtGroup nvarchar(512);
EXEC master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE'
, N'SOFTWARE\Microsoft\MSSQLServer\SQLServerAgent'
, N'DatabaseMailProfile'
, @param = @DatabaseMailProfile OUT
, @no_output = N'no_output';
EXEC master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE'
, N'SOFTWARE\Microsoft\MSSQLServer\SQLServerAgent'
, N'UseDatabaseMail'
, @param = @AgentMailType OUT
, @no_output = N'no_output';
EXEC master.sys.xp_instance_regread 'HKEY_LOCAL_MACHINE'
, 'SYSTEM\CurrentControlSet\Services\SQLSERVERAGENT'
, N'Start'
, @ServiceStartMode OUTPUT;
EXEC master.sys.xp_instance_regread 'HKEY_LOCAL_MACHINE'
, 'SYSTEM\CurrentControlSet\Services\SQLSERVERAGENT'
, N'ObjectName'
, @ServiceAccount OUTPUT;
EXEC master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE'
, N'SOFTWARE\Microsoft\MSSQLServer\Setup'
, N'AGTGroup'
, @AgtGroup OUTPUT;
SELECT Items.*
FROM #tmp_sp_get_sqlagent_properties AS tsgsp
CROSS APPLY (VALUES
('Name', CAST(serverproperty(N'ServerName') AS sql_variant))
, ('MsxServerName', ISNULL(tsgsp.msx_server_name,N''))
, ('JobServerType', CONVERT(sql_variant, tsgsp.sqlagent_type))
, ('SqlServerRestart', CONVERT(sql_variant, tsgsp.sqlserver_restart))
, ('SqlAgentRestart', CONVERT(sql_variant, tsgsp.monitor_autostart))
, ('MaximumHistoryRows', CONVERT(sql_variant, tsgsp.jobhistory_max_rows))
, ('MaximumJobHistoryRows', CONVERT(sql_variant, tsgsp.jobhistory_max_rows_per_job))
, ('ErrorLogFile', CONVERT(sql_variant, tsgsp.errorlog_file))
, ('AgentLogLevel', CONVERT(sql_variant, tsgsp.errorlogging_level))
, ('NetSendRecipient', CONVERT(sql_variant, ISNULL(tsgsp.error_recipient,N'')))
, ('AgentShutdownWaitTime', CONVERT(sql_variant, tsgsp.job_shutdown_timeout))
, ('SqlAgentMailProfile', CONVERT(sql_variant, ISNULL(tsgsp.email_profile,N'')))
, ('SaveInSentFolder', CONVERT(sql_variant, CAST(tsgsp.email_save_in_sent_folder AS bit)))
, ('WriteOemErrorLog', CONVERT(sql_variant
Code Snippets
DECLARE @MasterPath nvarchar(512);
DECLARE @LogPath nvarchar(512);
DECLARE @ErrorLog nvarchar(512);
DECLARE @ErrorLogPath nvarchar(512);
SELECT @MasterPath=substring(physical_name, 1, len(physical_name) - charindex('\', reverse(physical_name)))
FROM master.sys.database_files
WHERE name=N'master';
SELECT @LogPath=substring(physical_name, 1, len(physical_name) - charindex('\', reverse(physical_name)))
FROM master.sys.database_files
WHERE name=N'mastlog';
SELECT @ErrorLog=cast(SERVERPROPERTY(N'errorlogfilename') as nvarchar(512));
SELECT @ErrorLogPath=substring(@ErrorLog, 1, len(@ErrorLog) - charindex('\', reverse(@ErrorLog)));
DECLARE @SmoRoot nvarchar(512);
EXEC master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE'
, N'SOFTWARE\Microsoft\MSSQLServer\Setup'
, N'SQLPath'
, @SmoRoot OUTPUT;
IF OBJECT_ID('tempdb..#tmp_sp_get_sqlagent_properties') IS NOT NULL
DROP TABLE #tmp_sp_get_sqlagent_properties;
CREATE TABLE #tmp_sp_get_sqlagent_properties
(
auto_start int null
, msx_server_name sysname null
, sqlagent_type int null
, startup_account nvarchar(255) null
, sqlserver_restart int null
, jobhistory_max_rows int null
, jobhistory_max_rows_per_job int null
, errorlog_file nvarchar(255) null
, errorlogging_level int null
, error_recipient nvarchar(30) null
, monitor_autostart int null
, local_host_server sysname null
, job_shutdown_timeout int null
, cmdexec_account varbinary(64) null
, regular_connections int null
, host_login_name sysname null
, host_login_password varbinary(512) null
, login_timeout int null
, idle_cpu_percent int null
, idle_cpu_duration int null
, oem_errorlog int null
, sysadmin_only int null
, email_profile nvarchar(64) null
, email_save_in_sent_folder int null
, cpu_poller_enabled int null
, replace_alert_tokens_enabled int null
);
INSERT INTO #tmp_sp_get_sqlagent_properties
(
auto_start
, msx_server_name
, sqlagent_type
, startup_account
, sqlserver_restart
, jobhistory_max_rows
, jobhistory_max_rows_per_job
, errorlog_file
, errorlogging_level
, error_recipient
, monitor_autostart
, local_host_server
, job_shutdown_timeout
, cmdexec_account
, regular_connections
, host_login_name
, host_login_password
, login_timeout
, idle_cpu_percent
, idle_cpu_duration
, oem_errorlog
, sysadmin_only
, email_profile
, email_save_in_sent_folder
, cpu_poller_enabled
, replace_alert_tokens_enabled
)
EXEC msdb.dbo.sp_get_sqlagent_properties;
DECLARE @DatabaseMailProfile nvarchar(255);
DECLARE @AgentMailType int;
DECLARE @ServiceStartMode int;
DECLARE @ServiceAccount nvarchar(512);
DECLARE @AgtGroup nvarchar(512);
EXEC master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE'
, N'SOFTWARE\Microsoft\MSSQLServer\SQLServerAgent'
, N'DatabaseMailProfile'
, @param = @DatabaseMailProfile OUT
, @no_output = N'no_ouContext
StackExchange Database Administrators Q#163889, answer score: 2
Revisions (0)
No revisions yet.