Wednesday, March 21, 2012
Job LastRunOutCome?
I am trying to determine the status of a Job after it has finished
running, but I don't get the correct results:
I first check if the Job is currently Running:
Private Function isJobExecuting(sJobName As String) As Boolean
Dim JobServer As String
'Execute a SQL Server Job here
'Initialise the SQL Server
Set oSQLServer = New SQLDMO.SQLServer
'Initialise the Login time out
oSQLServer.LoginTimeout = 10
'Disconnect any connections first
oSQLServer.Disconnect
'Connect to the Server
oSQLServer.Connect JobServer, CStr("sa"), CStr("")
'Set Job and start it
oSQLServer.JobServer.Jobs.Refresh
Set oJob = oSQLServer.JobServer.Jobs(sJobName)
'Before starting to run the Job the status must be checkes...
'And run the job only when its not currently running.
If (oSQLServer.JobServer.Jobs(sJobName).CurrentRunStatus =
SQLDMOJobExecution_Executing) Then
isJobExecuting = True
ElseIf (oSQLServer.JobServer.Jobs(sJobName).CurrentRunStatus =
SQLDMOJobExecution_PerformingCompletionA
ctions) Then
isJobExecuting = False
End If
End Function
If Not I then Start the Job and check the status after that..
Everytime it tells me the status is 5...which means it cannot determine
the status.
While (isJobExecuting(JobName))
MsgBox ("RiskWatch Download Job busy executing. Please
wait...")
Wend
oJob.start
'After the Job has finished Check the Status...
While (isJobExecuting(JobName))
Wend
MsgBox oSQLServer.JobServer.Jobs(JobName).CurrentRunStatus
' Close the Job connection when done
Set oJob = Nothing
oSQLServer.JobServer.Jobs.Refresh
JobStatus = oSQLServer.JobServer.Jobs(JobName).LastRunOutcome
If JobStatus = 0 Then
MsgBox ("RiskWatch Download Job Failed ...")
RiskWatchDownload = False
Unload Me
ElseIf JobStatus = 1 Then
RiskWatchDownload = True
End If
I really will appreciate ur help!!
Regards,
Phonzo.Hi, Phonzo
Your isJobExecuting function returns False when CurrentRunStatus =
SQLDMOJobExecution_PerformingCompletionA
ctions, but also for any other
status other than SQLDMOJobExecution_Executing (because if you don't
assign any value to a boolean variable, it remains False). According to
Books Online, SQLDMOJobExecution_PerformingCompletionA
ctions means "All
executable job steps complete. Job history logging in progress". Maybe
you should wait until CurrentRunStatus = SQLDMOJobExecution_Idle before
looking at LastRunOutcome.
Razvan|||Hey Raz,
Thanks a lot 4 ur help, it worked...
Tnx a mil,
Cheers,
Phonzo.
Monday, March 19, 2012
Job failure - error msg attached
following error message:
The job failed. Unable to determine if the owner %OWNER%
of job %JOB% has server access (reason: The log for
database 'tempdb' is not available. [SQLSTATE HY000]
(Error 9001)).
Any ideas how to resolve this one? I've looked in the KB
and BOL, and I see entries for the error and the reason
in parentheses, but not with the two together. Was
thinking just cycling the instance might resolve the
issue, but was hoping to avoid doing this. Never seen
this one before, so any help would be appreciated.
Cheers.
All I can think is no DC available for authentication? I suspect the =
reason in brackets to be misleading, if tempdb had lost it's log you =
would be getting many other problems!)
Mike John
"knives" <anonymous@.discussions.microsoft.com> wrote in message =
news:1e30b01c454a9$cf5029c0$a001280a@.phx.gbl...
> I have a maintenance job that is failing with the=20
> following error message:
>=20
> The job failed. Unable to determine if the owner %OWNER%=20
> of job %JOB% has server access (reason: The log for=20
> database 'tempdb' is not available. [SQLSTATE HY000]=20
> (Error 9001)).
>=20
> Any ideas how to resolve this one? I've looked in the KB=20
> and BOL, and I see entries for the error and the reason=20
> in parentheses, but not with the two together. Was=20
> thinking just cycling the instance might resolve the=20
> issue, but was hoping to avoid doing this. Never seen=20
> this one before, so any help would be appreciated.
>=20
> Cheers.
|||I'd start by setting the job owner to sa.
Tibor Karaszi, SQL Server MVP
http://www.karaszi.com/sqlserver/default.asp
http://www.solidqualitylearning.com/
"knives" <anonymous@.discussions.microsoft.com> wrote in message
news:1e30b01c454a9$cf5029c0$a001280a@.phx.gbl...
> I have a maintenance job that is failing with the
> following error message:
> The job failed. Unable to determine if the owner %OWNER%
> of job %JOB% has server access (reason: The log for
> database 'tempdb' is not available. [SQLSTATE HY000]
> (Error 9001)).
> Any ideas how to resolve this one? I've looked in the KB
> and BOL, and I see entries for the error and the reason
> in parentheses, but not with the two together. Was
> thinking just cycling the instance might resolve the
> issue, but was hoping to avoid doing this. Never seen
> this one before, so any help would be appreciated.
> Cheers.
Job failure - error msg attached
following error message:
The job failed. Unable to determine if the owner %OWNER%
of job %JOB% has server access (reason: The log for
database 'tempdb' is not available. [SQLSTATE HY000]
(Error 9001)).
Any ideas how to resolve this one? I've looked in the KB
and BOL, and I see entries for the error and the reason
in parentheses, but not with the two together. Was
thinking just cycling the instance might resolve the
issue, but was hoping to avoid doing this. Never seen
this one before, so any help would be appreciated.
Cheers.All I can think is no DC available for authentication? I suspect the =reason in brackets to be misleading, if tempdb had lost it's log you =would be getting many other problems!)
Mike John
"knives" <anonymous@.discussions.microsoft.com> wrote in message =news:1e30b01c454a9$cf5029c0$a001280a@.phx.gbl...
> I have a maintenance job that is failing with the > following error message:
> > The job failed. Unable to determine if the owner %OWNER% > of job %JOB% has server access (reason: The log for > database 'tempdb' is not available. [SQLSTATE HY000] > (Error 9001)).
> > Any ideas how to resolve this one? I've looked in the KB > and BOL, and I see entries for the error and the reason > in parentheses, but not with the two together. Was > thinking just cycling the instance might resolve the > issue, but was hoping to avoid doing this. Never seen > this one before, so any help would be appreciated.
> > Cheers.|||I'd start by setting the job owner to sa.
--
Tibor Karaszi, SQL Server MVP
http://www.karaszi.com/sqlserver/default.asp
http://www.solidqualitylearning.com/
"knives" <anonymous@.discussions.microsoft.com> wrote in message
news:1e30b01c454a9$cf5029c0$a001280a@.phx.gbl...
> I have a maintenance job that is failing with the
> following error message:
> The job failed. Unable to determine if the owner %OWNER%
> of job %JOB% has server access (reason: The log for
> database 'tempdb' is not available. [SQLSTATE HY000]
> (Error 9001)).
> Any ideas how to resolve this one? I've looked in the KB
> and BOL, and I see entries for the error and the reason
> in parentheses, but not with the two together. Was
> thinking just cycling the instance might resolve the
> issue, but was hoping to avoid doing this. Never seen
> this one before, so any help would be appreciated.
> Cheers.
Monday, March 12, 2012
Job failing
I have a scheduled job on a SQL 2000 database which is failing. Here is the error message :
The job failed. Unable to determine if the owner (caci\snasir) of job Integrity Checks Job for DB Maintenance Plan 'IDS' has server access (reason: Could not obtain information about Windows NT group/user 'caci\snasir'. [SQLSTATE 42000] (Error 8198)).
I am the SA on the instance. I wonder why would I be getting this error message? I am able to logon to this instance and browse and change things. So clearly it recognizes me. But when I run the job it fails. Wonder why? my SQL Server version is 8.0.
The Job is owned by [caci\snasir]. The error indicates that SQL Server cannot validate [caci\snasir] credentials.
It may be better to transfer the job ownership to [sa].