I€™m trying to write a script that will detect long running agent jobs.
Having looked at this article:
http://www.databasejournal.com/features/mssql/article.php/3500276
It appears that agent job job id€™s don€™t necessarily get stored in the programname of the sysprocesses table. This is true if the agent executes an os command. It also appears that job steps do not get stored in the sysjobhistory until the step is complete so that cannot be used accurately.
Does anyone know of an effective way to find if there are long running jobs other than these methods?
I’m trying to write a script that will detect long running agent jobs.
Having looked at this article: http://www.databasejournal.com/features/mssql/article.php/3500276
It appears that agent job job id’s don’t necessarily get stored in the programname of the sysprocesses table. This is true if the agent executes an os command. It also appears that job steps do not get stored in the sysjobhistory until the step is complete so that cannot be used accurately.
Does anyone know of an effective way to find if there are long running jobs other than these methods?
Does Anyone of the SQLServer Guru has a smart script to alert DBA by email for failed jobs or jobs running more then their normal time(long running jobs), so that I dont have to go and look at the jobs everyday manually...on different servers...
I'm trying to configure mirroring with High Availability, Automatic Failover.
I know that all the jobs and maintenance plans need to be copied to the mirror server, and enabled if a mirror database takes over the principal role.
I wonder if it is a good solution to have all agent jobs on the Witness server (no jobs on principal and mirror). And all the jobs select the server where they should run (depending on current role).
One of the advantages of this approach would be that the jobs have to be created only once on the witness.
Will this solution work? What are the downsides of it?
Hi. I was wondering if anyone has ever had a problem where nothing seems to be wrong with the server, and SQL Server Agent is up and running, but jobs fail. We had a job run at midnight, and it was the last successful run. Every job failed after that, with an error stating "Unable to retrieve steps for job..." There doesn't seem to be any reason for the problem. The jobs were kicked off manually and they all ran.
The only other error messages we could find were in the Application Event Viewer on the server. But the first error happened days ago and said this: "The description for Event ID ( 0 ) in Source ( .NET Runtime ) cannot be found. The local computer may not have the necessary registry information or message DLL files to display messages from a remote computer. You may be able to use the /AUXSOURCE= flag to retrieve this description; see Help and Support for details. The following information is part of the event: Unable to open shim database version registry key - v2.0.50727.00000."
Since then, every few seconds this error occurred: "Windows cannot load extensible counter DLL MSSQLServerOLAPService, the first DWORD in data section is the Windows error code."
We turned off the performance monitor counters and that error stopped. But we still have no idea if that was the cause of the problem.
This isn't the first time we've had an issue with jobs failing because the steps couldn't be 'found', while SQL Server Agent was up and running.
When I give job Id in filter of this query this will give job status of "Success" but actually my job is currently in executing stage. I want to get all jobs that are currently in executing status.
Use msdb go select distinct j.Name as "Job Name", --j.job_id, case j.enabled when 1 then 'Enable' when 0 then 'Disable'
If I start a long running query running on a background thread is there a way to abort the query so that it does not continue running on SQL server?
The query would be running on SQL Server 2005 from a Windows form application using the Background worker component. So the query would have been started from the background workers DoWork event using ado.net. If the user clicks an abort button in the UI I would want the query to die so that it does not continue to use sql server resources.
when I run a package from a command window using dtexec, the job immediately says success. DTExec: The package execution returned DTSER_SUCCESS (0). Started: 3:37:41 PM Finished: 3:37:43 PM Elapsed: 2.719 seconds
However the Job is still in th agent and the status is executing. The implications of this are not good. Is this how the sql server agent job task is supposed to work by design.
I have a series of jobs in the SQL server Agent that will begin and appear to run fine, but will never finish. Is there a way to limit the time that a job will run in the agent, for instance stop with failure if not completed within 1 hour?
Hi All, I am not able to see any of the jobs in the enterprise manager that are scheduled on one of our production servers. Have any body seen this type of behaviour of SQL server.. The jobs are there in the SQL as I can query sysjobs table to see there entry.. The jobs are being executed properly when they are supposed to.. Thanks Ajay
Hi Guys, Can you please advice me on if there is a limitation on SQL agent Jobs. If then how many jobs can SQL server accomedate. If there is a limit, then is there are any ways to increase it? I appreciate your quick response. Thanks
I have several users that are a member of a Windows Nt group. I want to be able to allow this group to create, update, and delete SQL Agent Jobs. But I do not want them to be members of the SYSADMIN role. Everything that I have found states that they must be members of this server role to perform these actions. Does anyone have an idea on how to accomplish this? or point me in some kind of direction to explore.
Hello all, we just moved our databases over from a SQL 2000 server onto a new SQL 2005 server. We had no problem migrating them over, but was wondering if there was a way to migrate the jobs over as well. We have about 20 of them and would prefer not to hav to create them all again on the new server.
Hi Group, Is it possible to schedule and execute sql jobs from an asp page. I am developing an application that requires an administration section. In this section the admin would like to change / update the schedule of the sql job and also run the jobs ad hoc. Basicall y they would like the functionality of sql agen in enterprise manager to be available from their web application.
Has anbody done this before ? All information / solutions shall be psoted back to the group as I reckon this would be pretty useful functionality.
The SQL Server Agent process is running. When I use EM to start a database integrity check job, it fails with an error message of 22029 and the following:
[LOG] SQLServerAgent security context does not have server-autorestart privileges
I can not find error 22029 in Books on Line. I will go to Microsoft Knowledge base and research this problem.
In the mean time if someone can help, it is much appreciated.
I am trying to write a T-SQL script to change about 200 SQL Agent jobs to send notification to a different email notification list. I could do this manually but it would take me a lot more time. Is there a way to script this out in T-SQL? Thanks!
Hello, I need to document all SQL Server Agent Jobs with full description of dependencies - database, table, stored procedure, etc. Is there are a tool that I can download for that particular use???
I have a job with a single ActiveX step that I have setup and am having problems running.
If i set the SQL Server Agent to run as an Administrator then my job processes fine however under the default setup which has the SQL Server Agent running as Local System I get an error.
I assume this is permissions problem so I created a basic windows user called ABC. I then created a credential called ABC linked to the windows user ABC. I then created a proxy that uses the credential ABC and then ticked the box that allows the proxy to run ActiveX scripts. I then set the ABC as a principle of the proxy.
I then set my single job step to be run under the ABC credential.
Still no luck. This is the first time i've worked with this sort of thing so I'm not sure if I'm going about it in the right way.
Please explain how i can have a job that runs as an active X script. I understand running sql server agent as administrator is bad for security so what are the alternatives?
in reference to both MSSQL 2k8R2 and 2012, if i have a named instance AND a default instance on the same installation, and i create agent jobs (backups, indexing, etc) on either one, those same jobs appear on the "other" instance without having actually created them while logged IN to that instance.
Is this a normal feature of MSSQL? Doesn't seem like it should be happening that way.
I created an agent job, and it runs fine, but I want more control over the scheduling. I need to schedule jobs to run Sunday through Thursday at 8:00pm, skipping Friday.
How can I use the agent job interface and customize the schedule this way? Will I have to resort to a Windows Service and control the scheduling that way?
I am not sure if this is the right place to put a question on SQL Server Agent.
I have scheduled some SSIS Jobs using the SQL Server Agent, and wanted to know how can I view detailed log information on how the Job ran (particularly Failure Information).
The information in the Log File Viewer to see the job execution log doesnt seem to help much - as it only says weather the Job Failed or Succeeded.
I need to see the reason and/or the step in a job where it failed!
Can someone help me out with some insight into this....
We have a SQL Agent job which runs on a server which is running mirrored databases. If the database which is affected by the job is in the mirror state, SQL Server agent locates the principle, executes the statements against that, and completes successfully.
This behavior is not consistent.
This is potentially serious; if jobs implemented on both sides of a mirror are not disabled, they may both execute.
We have suffered incorrect financial values due to a reconciliation job running twice (on each side of the mirror, and updating the principle twice).
Just wondering if anyone knew if it was possible to create a SQL Server agent job that ran once every 30 seconds. I can't enter a value below 1 minute when editing the job schedule in Enterprise Manager.
Alternatively, I can create duplicate stored procedures and set one to run on the minute and one on the half minute. Thought there might be a better alternative to this though and I'll always have to be remembering to makes changes to both sprocs.
Our users tend to generate a lot of one-time reports through Reporting Services. The problem is that this seems to generate a lot of Jobs in SQL Agent. So many, in fact, that we'd like to set up a job to delete them periodically (nightly or weekly). I could go in & delete them through SS Management Studio but I'd like to manage it automatically. Let me state up front that I have limited experience with Reporting Services so if my questions seem basic, forgive me.
First, is there a way to avoid creating a SQL Agent job if this is a non-scheduled report? That would be optimal then there would be nothing to clean up.
Barring that, what's the "Best Practice" for doing this automatically? I found the jobs listed in msdb.dbo.sysjobs and other sysjob* tables. Is it reasonable for me to delete from these various tables (sysjobs, sysjobactivity, sysjobhistory, sysjobschedules, sysjobsteps, & sysjobstepslogs) if the job was generated by reporting services (i.e. sysjobs.description containing 'report server process') and no schedule exists (i.e. sysjobactivity.next_scheduled_run_date IS NULL)? What damage could this cause? Is there anything else I need to take into account?
I'm having an issue in SQL Server 2005 with jobs that execute SSIS packages. The jobs run fine for a week or so, then I'll come to find that four or five (of the ten or so jobs) are hung in "executing" status. They seem to hang indefinitely (as some have been "executing" for hours with no end. The schedules of the hung jobs are all different, varying from every 10 minutes to nightly. The packages perform completely diffent tasks, as well. I can't seem to find any common thread with the jobs that get hung, other than they are all executing SSIS packages.
I've tried manually stopping the jobs and restarting the agent and SQL Server but the jobs hang again on there next scheduled run. The only thing that fixes the issue is rebooting the box, and then the jobs hang again in a week or so. Could some sort of memory leak be consuming resources throughout the week and be causing the jobs to eventually hang? I just rebooted the box and the sqlagent90.exe process is currently using about 7mb of memory. I'll keep an eye on it. Any other suggestions?
I've thought of creating another job that stops jobs that are hung, but what's to say that this job won't get hung as well? Plus this seems like a band-aid fix...
I don't recall having these problems until installing SQL Server 2005 SP2. Could this be related? I've searched like crazy and still can't find a resolution to this. It's becoming a big PITA...
Anyway, any suggestions would be very much appreciated!
Hello everyone. I'm having a problem with the sql server agent occasionally not executing its scheduled jobs, and unless the sql server agent is restarted they will not execute according to their schedule. I've read many posts on people having problems with running a package manually and then not being able to run it in a job, although that is not my problem since these are jobs that have all run successfully historically, and only until the agent is restarted do they start working again. It is the strangest thing.....we have many different jobs on this server and all of them will just mysteriously stop being executed. Two other things of note, the agent and server processes both run on AD accounts, and we receive this error:
SQL Server Scheduled Job 'X' - Status: Failed - Invoked on: 2007-10-27 02:00:00 - Message: The job failed. Unable to determine if the owner (ADadacct) of job 'X' has server access (reason: Unable to connect to server - check SQL Server and SQL Server Agent errorlogs).