SQLServerAgent could not be started (reason: SQLServerAgent must be able to connect to SQLServer as SysAdmin, but '(Unknown)' is not a member of the SysAdmin role).
I installed Windows Update KB927891 for Windows Server 2003 today. Following the required reboot my three instances of SQL no longer work! Monitoring, BackUpExec and Sophos have stopped working due to SQLAgent being unable to start. Both SQL Server and DTC start successfully.
Event Viewer reports error id 103, unable to connect to server.
I'm going to be setting up SQLAgent to automatically send notifications on failure. My question is are there any "gotcha's" I might need to no about when doing this in a clustered environment? If the server were to failover, does the agent peform as it should?
Hi !! I am trying to configure SQL mail with POP3 (Lotus notes) mail client. I created the mail profile, I am sure that my login and service logon account is the same, i have mail client working on my work station (i.e i can send and recieve mails on my lotus notes ID). I am running NT 4.0 / SQl 7.0
When i do a test profile on SQL MAIL properties i get "ERROR 22030,A MAPI ERROR(ERROR NUMBER 87)OCCURED, MapiLogonEx FAIILED DUE TOMAPI ERROR 87; INVALID PARAMETER"
When i try an start my SQL MAIL, i get, " Error 17952: Failed to Start mail session: "
Where am i going wrong guys ?
any insight would be apprecieted !!
i am running sevice pack 3 on sql server 7.0 and 6a on NT 4.0
Hi, My SQL Mail fails to Start. I am using Outlook Express as my mail client. I am not sure why it does not work in one of the servers when it works fine in another SQL Server. Any ideas. Help Appreciated.
Hello! I created SQLServer account which suppose to launch MSSQLServer and SQL mail serveces. But when I try to stop and then run SQL Server through Command promt I see error message: " Starting SQL Mail session.... Error: 17903, Severity:18, state:1 MAPI login failure Error: 17951, Severity:18, state:1 Failed to start SQL MAil session" Please save my life. If you have any idea what I have to do to fix up problem let me know.
We currently have SQL Server 6.5 installed on 2 servers and did not specify to automatically start the mail client. When I display the Server Configuration/Options screen in Enterprise Manager, the Auto Start Mail Client check box option is grayed out. How can I change these servers to automatically start the mail client at startup?
I cannot understand why I cannot get my sql mail to work properly. It was working fine a couple of days ago. My mail profile is setup using Outlook. The only problem is that when I go to services and check the Mssqlserver & sqlserveragent, they are now logging in as the system account, but when I attempt to change them to the administrator account it says error 1057 occured: the account name is invalid or does not exist, yet it does. Anyone have any idea how to rectify this? this is what is on the error log:Error: 17919, Severity: 18, State: 1 2001-06-05 14:09:16.33 ods Invalid session.. 2001-06-05 14:09:16.34 ods Error: 17951, Severity: 18, State: 1 2001-06-05 14:09:16.34 ods Failed to start SQL Mail session..
I hope somebody can give me a clue for this problem. Our SQL Server was installed with default option. The SQL Server account is .SQL-Cmdexec. I tried to create two backup jobs to save daily backup files into another server. The SQL Server could not detect that server drive during the database backup set up. I knew that was because the SQL Agent account could not access to that server. I had the following questions:
1. How to grant write right to current SQL Agent account to another backup server?
2. It looks like .SQL-cmdexec is created by SQL Server default installation. If I try to change this account to another account, the Enterprise Manager is the only place to be changed or there is another place keeps SQL Agent account info.
3. If I try to give SQL Agent account access to the other servers, what is the relationship between NT User manager and SQL Agent accounts.
Hello,I have the following error message in the sqlagent.out file, loopingeach minute.2005-12-19 10:58:54 - ! [298] SQLServer Error: 14262, The specified@job_id ('254D5C3B-CB1F-4B02-AD79-FF5AFE343E3B') does not exist.[SQLSTATE 42000] (ConnExecuteCachableOp)I restarted the sqlagent and ms-sqlserver service, but did not fix theproblem.ThanksDiane Lavoie
I have two questions:(1)After I stopped SQLAgent, I couldn't start it up, even restart theserver.Why?(2) I may need to reinstall the server, if I do, do I need touninstall? or just override the current one?Thanks!Saiyou
SQL Server name: BOProd Domain: BODomain I have an NT User 'SQLAgent' with domain Admin previleges. SQL server has 'SQLAgent' user with NT authentication and system admin previledges. I am in process of setting up mail services for sqlmail and sql agent mail. As a part of this process, when I log on to the server computer as SQLAgent, it doesn't let me access Enterprise manager saying 'Login could not be established to BOProd-Login failed for user 'BODomainSQLAgent'. It does allow me to connect to query analyser by providing 'user name/password'.
Any idea why connection to enterprise manager fails?
The SQLAgent service was modified to login as a domain account. SQLAgent would not start. I made sure that the account was in the Admin group on the server, I setup the account as a System Administrator in SQL. I made sure that the network protocols in Client Network Utiliity and Server Network Utility where the same as other servers using the domain account. The message I'm getting is...
SQLServerAgent could not be started (reason: Unable to connect to server; SQLServerAgent cannot start).
I modified the properties for SQLAgent back to login as local account and I still get the same problem.
Hi all, I have some trouble with SQLAgent...when I try to schedule a jobthat invokes a script (vbs, java, cmdshell,...), SQLAgent crashes at themoment of scheduled execution. If I try to execute it manually, all worksfine. This installation runs on a cluster Win2003 and the node initiate afailover if I don't delete the job and then restart Agent (I can't start theservice before deleting that job!!!). Event viewer logs something like:"LOG] Exception 5 caught at line 191 of file ..src efreshr.c.SQLServerAgent initiating self-termination".I've already tried to debug the service but my dump did not help me.Any suggestion?Thankscamau
Can someone explain me this error I encountered, is this an application error or script error? How can i resolve this one?
"The description for Event ID ( 208 ) in Source ( SQLAgent$TSESMSDBS ) 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: [0230] GET MA_SMSCODE, 0x523D92CBAACD304E88CF720580B18357, Failed, 2007-11-10 02:30:00, The job failed. The Job was invoked by Schedule 2 (MA_SMSCODE - Every 2.30AM). The last step to run was step 5 (NSCSI - MODEL SMS SHORT CODE).."
Hope to hear from anyone as soon as possible. Thanks.
I have a SQLAgent job created using isqlw to run the query and output the results to a file on the C drive. However, the job never completes, which is strange since the database is fairly new and when I run the query manually in a isqlw window, it completes and outputs the file in seconds.
On my account we have very separate authority between the NT system administrators and the SQL DBAs. Routinely in SQL 6.5 we would remove sa authority from the NT administrators group and add this authority to a NT database administrators group which we were members of using SQL Security manager. We have tried to apply this same method to our implementation of SQL 7.0. We removed the sysadmin role from the BUILTINAdministrators group and added sysadmin to the DatabaseAdmin NT group which the DBAs and SQLAGENT account are members of. This appeared to work fine until we tried to run our database maintenance plans in SQLAGENT. When sysadmin role is revoked from BUILTINAdministrators the jobs in SQLAGENT using xp_sqlmaint fail with "select permission denied to sysdbmaintplans in database 'msdb' owner 'dbo'"
The SQLAGENT login is part of an NT group that has been granted sysadmin role in SQL Server. This should grant full access to SQLAGENT. What's up? Is the xp_sqlmaint using hardcoded security of some kind? I am confused. Any suggestions? We really need to revoke sysadmin from the BUILTINAdministrators group.
I have several target servers defined, i have a job that needs to run in a serial fashion (ie.. 1 target at at time) if every target kicks off the job at the same time it's going to bog down the disk drives... can this be serialized? or do i need to write a special routine...
How can i change the location of the Sql Agent errorlog file, sqlagent.out When i choose Properties from the Sql Agent page, i can see the location and filename, but i am not able to change it. Is there some starup parm? And how can i apply it?
Configuration : MSSQL2005 SP2 on Windows 2003 server
I have a strange issue when scheduling SSIS Job.
When I schedule it, I set the owner as the domain administrator. The scheduled job can be run manually without any problem. The scheduled job run automatically at scheduled time wihtout problem.
But , for an unknow reason, after some cycle, the job failed with the following error : The job failed. The owner () of <name of the job> does not have server access
As you can see, the owner name is blank.
If I look to the job settings : the owner is still the domain administrator. If I try to run it manually, the job fails with the same error. now if I just rename the job name from <name of the job> to <name of the job2> then all problems are solved. If we let the job failing everyday, sometimes, it starts again to work properly. We have this issue on 2 jobs.
If anyone has faced this issue : thank you for advise.
After you've created an SSIS package or multi-package solution, the next step is usually to deploy it to a production environment and schedule it to run at regular intervals. We took this approach at our company and scheduled the master package as a step in a SqlAgent Job. I import the dtsx packages into the server by connecting to the Integration Services connection and importing them into Stored Packages > MSDB. Next, I create a SqlAgent job via the Database Engine connection under SQL Server Agent > Jobs. I then add a step and select "SQL Server Integration Services Package" under the step Type menu. This brings up a powerful dialog that lets you set your production runtime environment parameters for the connection strings, SSIS package variables, config file path, and logging parameters.
As part of my deployment process, I wanted to run the job one time at the end of the build and check the status before deeming the build a complete success. The script is long running (several minutes) so I had to deal with the issue of polling. I had been recently using the WHILE loop in T-SQL and I also found the Waitfor Delay command. I discovered how to get to the job activity via the sp_help_jobactivity extended stored proc. The source for this proc indicates that you can get to the most recent execution of the job, including the currently running job. If the job is running, the run_status column of the resultset is null. Once the job completes, this flag is 0 for failure and 1 for success. I wanted to query the underlying tables directly so I extracted the bare minimum queries to get at the fields that I needed. I provided timeout variables so you can set your desired polling interval and timeout.
I am not sure whether this while/waitfor loop approach is very CPU-intensive or can cause locking problems. I'm hoping it does not. But it's a convenient way to use T-SQL to test for a SqlAgent job status if your build tool supports running a query against a database, which most of them do. You can always use WMI or a .Net app to achieve the same result. If someone has done this already, perhaps you can post your code sample or a link to it as a reply to this thread.
I'm assuming that other DBAs and developers responsible for production deployment and monitoring will find this script useful. I also wouldn't mind if I scored a couple MVP points . One confusion I had to deal with was that sp_help_jobactivity returns a return code of 0 or 1 with the opposite meaning as the run_status column that is in the result set. It took me a little while to figure this out since possible values for run_status were not well-documented.
Enjoy! Norm Katz www.ipconsulting.com
/************************************************************************************************ ** ** Script Name: CheckJobStatus.sql ** Description: Checks the status of the last instance of a SqlAgentJob ** Author: Norm Katz ** Date: 11-15-2007 ************************************************************************************************/ USE MSDB GO DECLARE @job_id UNIQUEIDENTIFIER DECLARE @job_name sysname DECLARE @jobStatus int DECLARE @message varchar(1000) DECLARE @jobid int DECLARE @jobEndTime varchar(32) DECLARE @runtime int DECLARE @timeout int DECLARE @delay datetime DECLARE @delayIncr int DECLARE @session_id int DECLARE @jobCheckTimeoutOccurred bit SET @job_name = 'MySqlAgentJobName'
-- initialize @delay using the datetime string, e.g., "00:00:05" for 5 seconds -- initialize @timeout to seconds you want to wait, e.g. 300 for 5 minutes. -- initialize @delayIncr to the integer number of seconds for @delay SET @runtime = 0 SET @timeout = 300 SET @delay = '00:00:05' SET @delayIncr = 5 SET @jobCheckTimeoutOccurred = 0
SELECT TOP(1) @session_id = session_id FROM msdb.dbo.syssessions ORDER by agent_start_date DESC
WHILE @jobStatus is null BEGIN SELECT @job_id = ja.job_id, @message = jh.message, @jobStatus = jh.run_status, @jobEndTime = stop_execution_date FROM (msdb.dbo.sysjobactivity ja LEFT JOIN msdb.dbo.sysjobhistory jh ON ja.job_history_id = jh.instance_id) join msdb.dbo.sysjobs_view j on ja.job_id = j.job_id WHERE ja.job_id = @job_id AND ja.session_id = @session_id IF @jobStatus is null BEGIN SET @runtime = @runtime + @delayIncr IF @runtime > @timeout BEGIN SET @jobCheckTimeoutOccurred = 1 SET @jobStatus = -1 BREAK END Waitfor Delay @delay END ELSE BREAK END
IF @jobCheckTimeoutOccurred = 1 print 'Check for status of Job ID ' + cast(@job_id as varchar(64)) + ' for ' + @job_name + ' timed out after ' + cast(@timeout as varchar(5)) + ' seconds' ELSE BEGIN print 'Job ID ' + cast(@job_id as varchar(64)) + ' for ' + @job_name + ' completed on ' + @jobEndTime IF @jobStatus = 1 print 'Job Succeeded' ELSE print 'Job Failed with Message: ' + @message END
SELECT @jobStatus -- The final select query will return one of three values: -- -1: Script timed out -- 0: Job failed -- 1: Job Succeeded
I've set up DB mail and sent a test e-mail and that comes through fine.
I set up an Operator with email Name: DWhelpton@k-and-s.com;MWeaver@k-and-s.com
I created a job and set up the notifications to e-mail the operator on failure.
When the job runs and fails, I do not get an e-mail and I get the following exception in the db mail log:
Date 2/2/2007 8:35:00 AM Log Database Mail (Database Mail Log)
Log ID 402 Process ID 3936 Last Modified 2/2/2007 8:35:00 AM Last Modified By NT AUTHORITYSYSTEM
Message 1) Exception Information =================== Exception Type: Microsoft.SqlServer.Management.SqlIMail.Server.Common.BaseException Message: Could not retrieve item from the queue. Data: System.Collections.ListDictionaryInternal TargetSite: Microsoft.SqlServer.Management.SqlIMail.Server.Controller.ICommand CreateSendMailCommand(Microsoft.SqlServer.Management.SqlIMail.Server.DataAccess.DBSession) HelpLink: NULL Source: DatabaseMailEngine
StackTrace Information =================== at Microsoft.SqlServer.Management.SqlIMail.Server.Controller.CommandFactory.CreateSendMailCommand(DBSession dbSession) at Microsoft.SqlServer.Management.SqlIMail.Server.Controller.CommandFactory.CreateCommand(DBSession dbSession) at Microsoft.SqlServer.Management.SqlIMail.Server.Controller.CommandRunner.Run(DBSession db) at Microsoft.SqlServer.Management.SqlIMail.IMailProcess.ThreadCallBack.MailOperation(Object o)
I am using nt4.0 sp5 with sql7.0 sp3 and exchange client. Does anyone know how to keep xp_sendamil form putting a copy of the mail message in the sent mail folder or an automated process for deleting all mail in the sent folder? As it stands now I must manually delete all messages from the sent mail folder on a daily basis.
Lokendra writes "I have configured the Database mail profile and account in Sql Server 2005 but the mail is not sending and showing the following error message:
Error,235,The mail could not be sent to the recipients because of the mail server failure. (Sending Mail using Account 1 (2007-03-05T15:16:07). Exception Message: Cannot send mails to mail server. (Mailbox name not allowed. The server response was: Sorry<c/> that domain isn't in my list of allowed rcpthosts.). ),3000,90,,3/5/2007 3:16:07 PM,sa
but while in the same mail set up in previous instance of sql server 2005 the message was sending very well. After installing new instance of sql server 2005 the problem is arising.
Anybody can tell me that what I can do so that i can send mail using the SMTP databasemail account."
Dear all, I have switched off the firewall settings on my system and as suggested im entering the minimal information and data to send the mail. but still the Mail Task is failing.. plz suggest.
Hopefully someone out there will have an idea as this is driving me nuts.
I've setup a task to email on success/failure and keep receiving the following message when executed:
Progress: The SendMail task is initiated. - 0 percent complete [Send Mail Task] Error: An error occurred with the following error message: "Failure sending mail.". Progress: The SendMail task is completed. - 100 percent complete Task Send Mail Task failed
When I configure Outlook Express on the same machine with the same settings it works.
On the SMTP Connection Manager I have left the default name, tested with both an IP address and Server Name, and no authentication or SSL.
On the Send Mail Task, it uses the above connection. The To: , From: , Subject fields are populated. Message SourceType is DirectInput, MessageSource is Test, Priority is Normal and no attachments or expressions etc.
Nothing useful is logged in the Event Viewer even with full logging turned on.
Following is our test steps.1. Create directory E:firefly in E:.2. Create a test file a.txt in E:firefly.3. Create E:firefly est.bat file with the following commands:cd E:fireflycopy a.txt b.txt4. Create a new job in SQL Server Management Studio with only onestep, this only step's commandtype is set to "Operating system(CmdExec)", and click the "Open"button to choose E:firefly est.batfile, then the commands in test.bat are copyed to the command editor.5. Save the job and run it, Management Studio tells the job faild, butdid not tell an error message.If I only use the following command :copy E:firefla.txt Efirefly.txt, and SQLAgent canrun the command successfully via the job.The real functionality of our job is to backup database to a file,then use our source control tool'scommand line tool to submit the backup file to the server.