If no, check the service logs and windows log for information
select ServerID, convert(nvarchar(50), Hostname) as Hostname, ss.Name as ServerState, MaxQueueLength, MaxActiveJobs, IsQueueProcessingEnabled from config.t_Server s inner join config.t_ServerState ss on s.StateID = ss.ServerStateID |
Have all targets sets been expanded fully...
select ipar.IPAddressRangeId, ipar.Name, ipart.Name as TargetSetType, StartIPAddress, EndIPAddress, jobs.convertBinaryToIP(aip.Start) as ActiveIPRangesStart, jobs.convertBinaryToIP(aip.Finish) as ActiveIPRangesFinish, aip.LocationID, ProjectID, case jobs.convertBinaryToIP(aip.Finish) when EndIPAddress then 'Fully Expanded' else 'In Progress' end as [State] from [jobs].[t_ActiveIPRanges] aip with (nolock) inner join config.t_IPAddressRange ipar with (nolock) on aip.IPAddressRangeID = ipar.IPAddressRangeID inner join config.t_IPAddressRangeType ipart with (nolock) on ipar.IPAddressRangeTypeID = ipar.IPAddressRangeTypeID |
If yes, scan engine believes it has expanded everything it needs to.
Run the Job Stats
script here.
If all targets sets have not been fully expanded and there are no queued jobs, check that the queue step procs are being executed.
We expect to see regular executions of jobs.QueueStep1_ExpandRanges
and jobs.QueueStep2_SetJobStatus
.
jobs.QueueStep2_SetJobStatus
code to determine why jobs aren't reaching a state of Queued
.Queued Job Analysis
script here.If items are queued and the queue processing procs are being executed, follow the steps above to create a database trace and check for regular executions of jobs.Targets_Serve
.
Queue processing is suspended when the average resource usage over 5 minutes on the scanning server exceeds the levels configured in Administration > Scanning Servers. It will only resume when average resource usage has fallen below the configured limits for 5 minutes. To determine if a server is in breach of these limits execute the following query. The output results are SQL Statements to check the performance limits for each individual server. Copy and paste the results into SQL Management Studio and execute that. If the value in any of the Is<X>InBreach
columns is 1 then processing queue processing and job serving have been suspended. Also check for the following text in the logs: Queue processing is suspended.
select '/* Server: ' + s.HostName + ' */ exec [config].[Performance_Check] ''' + convert(nvarchar(50), InstallationID) + ''' -- Server: ' + s.Hostname from config.t_Server s |
Polled X new targets
. If X
is -1
then the server has no further capacity to serve additional jobsselect s.ServerID, convert(nvarchar(50), s.Hostname) as Hostname, tp.Name as JobPhase, ts.Name as JobStatus, j.JobId, ParentJobID, convert(nvarchar(50), j.Hostname) as Hostname, j.IPAddressBinary, IsComplete, StartDate, EndDate, DATEDIFF(hh, StartDate, getDate()) as 'Duration {Hours)', q.JobStatusID, ' QUEUE DATA --> ', js.name as QueueStatus, DisabledUntil, [Priority], Source, QueueId, IgnoreConfiguredIPs from jobs.t_Job j inner join config.t_Server s on j.ServerID = s.ServerID inner join jobs.t_TargetStatus ts on j.TargetStatusID= ts.TargetStatusID inner join jobs.t_TargetPhase tp on ts.TargetPhaseID = tp.TargetPhaseID inner join jobs.t_Queue q on j.JobId = q.JobID inner join jobs.t_JobStatus js on q.JobStatusID = js.JobStatusID where IsComplete = 0 |
Search the Service logs for the text iQSonar Job Poll
. How much information you see here will depend on the level of logging (configuration for this not in scope here). Look for errors or warnings - but also look for messages similar to any of the following...
.