dbo.QBM_PJobQueueInit_i
Stored ProcedureSQL_STORED_PROCEDURESandbox DB
Interpretation
- Database routine. Review parameters, called procedures, DBQueue inserts, and QBM_PJobCreate helper calls before assuming side effects.
Relations
- No extracted relations.
Typed Edges
- references source dbo.QBM_FCVElementToObjectKey1 source text reference
- references source dbo.QBM_FCVStringToGUID source text reference
- references source dbo.QBM_FGIConfigparmValue source text reference
- references source dbo.QBM_FGIDBDataOrigin source text reference
- references source dbo.QBM_FGIJobQueueMessageAdd source text reference
- references source dbo.QBM_FGIJobQueueTopJob source text reference
- references source dbo.QBM_FGISessionContext source text reference
- references source dbo.QBM_FGISessionErrorRethrow source text reference
- references source dbo.QBM_PExecuteSQLWithRetry_LLP source text reference
- references source dbo.QBM_PJobQueueInit source text reference
- references source dbo.QBM_PJobQueueSetSameServer source text reference
- references source dbo.QBM_PQBMServerHasJobService source text reference
- references source dbo.QBM_PSessionContextSet source text reference
- references source dbo.QBM_PSessionErrorAdd source text reference
References
- dbo.QBM_FCVElementToObjectKey1
- dbo.QBM_FCVStringToGUID
- dbo.QBM_FGIConfigparmValue
- dbo.QBM_FGIDBDataOrigin
- dbo.QBM_FGIJobQueueMessageAdd
- dbo.QBM_FGIJobQueueTopJob
- dbo.QBM_FGISessionContext
- dbo.QBM_FGISessionErrorRethrow
- dbo.QBM_PExecuteSQLWithRetry_LLP
- dbo.QBM_PJobQueueInit
- dbo.QBM_PJobQueueSetSameServer
- dbo.QBM_PQBMServerHasJobService
- dbo.QBM_PSessionContextSet
- dbo.QBM_PSessionErrorAdd
Referenced By
Complete Source
1CREATE PROCEDURE QBM_PJobQueueInit_i(2 @queue nvarchar(255),3 @SessionID varchar(38) = '',4 @SetSessionOnly BIT5)6AS7BEGIN8 DECLARE @uid_tree varchar(38)9 DECLARE @uid_job varchar(38)10 DECLARE @SQLcmd nvarchar(max)11 DECLARE @isMasterSQL int = 012 DECLARE @UID_QBMServer varchar(38)13 DECLARE @SessionID_DB varchar(38)14 DECLARE @msg nvarchar(1000)15 DECLARE @GenProcID varchar(38)16 DECLARE @XUser nvarchar(64)17 DECLARE @Xdate datetime = getutcdate()18 DECLARE @UID_QBMJobqueueOverview varchar(38) = dbo.QBM_FCVStringToGUID('',19 @queue)20 DECLARE @QueueMirror QBM_YCursorBuffer21 DECLARE @ElementCount int22 DECLARE @ElementIndex int23 DECLARE @AffectedQueuesExceptMe QBM_YParameterlist24 DECLARE @JobqueueMessage nvarchar(1000)25 DECLARE @NewState nvarchar(16)26 DECLARE @SQLOverviewUpdate nvarchar(max)27 DECLARE @OverviewUpdateRowcount int28 DECLARE @GenProcID_R varchar(38) = dbo.QBM_FGISessionContext('')29 DECLARE @XUser_R nvarchar(64) = dbo.QBM_FGISessionContext('XUser')30 SET XACT_ABORT OFF31 BEGIN TRY32 SELECT @GenProcID = dbo.QBM_FGISessionContext('')33 SELECT @XUser = dbo.QBM_FGISessionContext('XUser')34 IF isnull(@XUser,35 '') = ''36 BEGIN37 SELECT @XUser =38 LEFT(Object_name(@@procid),39 64)40 EXEC QBM_PSessionContextSet 'GenProcID',41 @GenProcID42 EXEC QBM_PSessionContextSet 'XUser',43 @XUser44 END45 SELECT46 TOP 1 @UID_QBMServer = UID_QBMServer,47 @SessionID_DB = isnull(SessionID,48 '')49 FROM QBMServer50 WHERE51 QueueName = @queue52 IF EXISTS(53 SELECT TOP 1 154 FROM QBMServerHasServerTag ht55 WHERE56 ht.UID_QBMServer = @UID_QBMServer AND ht.UID_QBMServerTag = 'QBM-ST-Is07')57 BEGIN58 SELECT @isMasterSQL = 159 END60 IF isnull(@UID_QBMServer,61 '') = ''62 BEGIN63 IF dbo.QBM_FGIConfigparmValue('Common\Jobservice\AutoCreateServerFromQueues') > ' '64 BEGIN65 SELECT @UID_QBMServer = NEWID()66 SELECT @SessionID_DB = @SessionID67 INSERT INTO QBMServer(QueueName,68 UID_QBMServer,69 XObjectKey,70 Ident_Server,71 XDateInserted,72 XDateUpdated,73 XUserInserted,74 XUserUpdated,75 SessionID)76 SELECT77 @queue,78 @UID_QBMServer,79 dbo.QBM_FCVElementToObjectKey1('QBMServer',80 'UID_QBMServer',81 @UID_QBMServer),82 CASE charindex('\',83 reverse(@queue))84 WHEN 0 THEN85 @queue86 ELSE reverse(SUBSTRING(reverse(@queue), 1, charindex('\', reverse(@queue)) -1))87 END AS Ident_Server,88 GETUTCDATE(),89 GETUTCDATE(),90 @XUser,91 @XUser,92 @SessionID_DB93 END94 ELSE95 BEGIN96 SELECT @msg = '#LDS#No server found for the queue {0}.|' + @queue + N '|'97 RAISERROR(@msg,98 18,99 2)100 WITH nowait101 END102 END103 IF isnull(@SessionID_DB,104 '') <> isnull(@SessionID,105 '') AND @SessionID > ' '106 BEGIN107 EXEC QBM_PSessionContextSet 'GenProcID',108 @GenProcID109 EXEC QBM_PSessionContextSet 'XUser',110 @XUser111 UPDATE QBMServer112 SET SessionID = @SessionID,113 XDateUpdated = @Xdate,114 XUserUpdated = @XUser115 WHERE116 UID_QBMServer = @UID_QBMServer117 END118 IF @SetSessionOnly = 1119 BEGIN120 GOTO endWithoutReset121 END122 SELECT123 @SQLOverviewUpdate = CONCAT('124update QBMJobqueueOverview 125 set IsInitQueueRunning = 1126 from QBMJobqueueOverview o 127 where o.UID_QBMJobqueueOverview = '''128 ,129 @UID_QBMJobqueueOverview,130 '''131 and o.IsInitQueueRunning = 0')132 EXEC @OverviewUpdateRowcount = QBM_PExecuteSQLWithRetry_LLP @SQLStatement = @SQLOverviewUpdate,133 @LockTimeout_ms = 20,134 @MaxWaitTimeForLock_s = 3,135 @ProcIDForJournal = DEFAULT,136 @HandleErrorSilent = 0137 IF @OverviewUpdateRowcount = 0138 BEGIN139 GOTO endWithoutReset140 END141 IF(142 SELECT TOP 1 DataOrigin143 FROM DialogDatabase d144 WITH(readpast)145 WHERE146 d.IsMainDatabase = 1) <> dbo.QBM_FGIDBDataOrigin()147 BEGIN148 SELECT149 @JobqueueMessage = N 'status set to FROZEN by reinitializing jobqueue because of wrong DialogDatabase.DataOrigin'150 SELECT @NewState = 'FROZEN'151 END152 ELSE153 BEGIN154 SELECT @JobqueueMessage = N 'status changed by reinitializing jobqueue'155 SELECT @NewState = 'TRUE'156 END157 EXEC QBM_PSessionContextSet 'GenProcID',158 @GenProcID159 EXEC QBM_PSessionContextSet 'XUser',160 @XUser161 UPDATE jobqueue162 SET ready2exe = @NewState,163 UID_JobSameServer = q.UID_Job,164 ErrorMessages = dbo.QBM_FGIJobQueueMessageAdd(ErrorMessages,165 @JobqueueMessage),166 XDateUpdated = @Xdate,167 XUserUpdated = @XUser168 FROM JobQueue q169 JOIN(170 SELECT171 UID_Tree,172 count(*) AS CountItems173 FROM JobQueue174 WHERE175 queue = @queue AND Ready2EXE IN(N 'LOADED', N 'PROCESSING', N 'MISSING')176 GROUP BY UID_Tree177 HAVING count(*) = 1) AS x178 ON q.UID_Tree = x.UID_Tree179 WHERE180 ready2exe IN(N 'LOADED',181 N 'PROCESSING',182 N 'MISSING') AND NOT EXISTS(183 SELECT TOP 1 1184 FROM JobQueue q3185 WHERE186 q3.Ready2EXE IN(N 'DELETE', N 'HISTORY') AND q3.UID_Tree = q.UID_Tree)187 UPDATE JobQueue188 SET Ready2EXE = N 'HISTORY',189 ErrorMessages = dbo.QBM_FGIJobQueueMessageAdd(ErrorMessages,190 N 'status set to HISTORY by reinitializing jobqueue because of undefined root job'),191 XDateUpdated = @Xdate,192 XUserUpdated = @XUser193 FROM JobQueue q194 JOIN(195 SELECT q2.UID_Tree196 FROM JobQueue q2197 GROUP BY q2.UID_Tree198 HAVING sum(convert(int, q2.IsRootJob)) <> 1) AS x199 ON q.UID_Tree = x.UID_Tree200 WHERE201 q.Ready2EXE NOT IN(N 'HISTORY',202 N 'DELETE')203 INSERT INTO @QueueMirror(UID1,204 UID2)205 SELECT206 DISTINCT q.uid_tree,207 dbo.QBM_FGIJobQueueTopJob(q.UID_Tree)208 FROM jobqueue q209 WHERE210 q.queue = @queue AND(q.ready2exe IN(N 'LOADED', N 'PROCESSING', N 'MISSING', N 'TRUE') OR EXISTS(211 SELECT TOP 1 1212 FROM(213 SELECT214 uid_tree, count(z.ready2exe) AS CountItems215 FROM jobqueue q1216 LEFT217 OUTER218 JOIN(219 VALUES(N 'TRUE'),(N 'LOADED'),(N 'PROCESSING')) AS z(Ready2exe)220 ON z.ready2exe = q1.ready2exe221 GROUP BY uid_tree222 HAVING count(z.ready2exe) = 0) AS y223 WHERE224 y.uid_tree = q.uid_tree)) AND NOT EXISTS(225 SELECT TOP 1 1226 FROM jobqueue q3227 WHERE228 q3.ready2exe IN(N 'FROZEN', N 'OVERLIMIT', N 'DELETE', N 'HISTORY') AND q3.uid_tree = q.uid_tree) AND EXISTS(229 SELECT TOP 1 1230 FROM jobqueue q4231 WHERE232 q4.uid_tree = q.uid_tree233 GROUP BY q4.uid_tree234 HAVING count(*) > 1)235 INSERT INTO @AffectedQueuesExceptMe(Parameter1)236 SELECT237 DISTINCT dbo.QBM_FCVStringToGUID('',238 q.Queue)239 FROM JobQueue q240 WITH(nolock)241 WHERE242 q.UID_Tree IN(243 SELECT UID_Tree244 FROM @QueueMirror) AND q.Queue <> @queue245 EXEC QBM_PSessionContextSet 'GenProcID',246 @GenProcID247 EXEC QBM_PSessionContextSet 'XUser',248 @XUser249 IF EXISTS(250 SELECT TOP 1 1251 FROM @QueueMirror m252 WHERE253 m.UID2 = '')254 BEGIN255 UPDATE jobqueue256 SET Ready2EXE = N 'HISTORY',257 XDateUpdated = @Xdate,258 XUserUpdated = @XUser259 FROM JobQueue q260 JOIN(261 SELECT m.UID1 AS UID_Tree262 FROM @QueueMirror m263 JOIN JobQueue j264 ON m.UID1 = j.UID_Tree265 WHERE266 m.UID2 = ''267 GROUP BY m.UID1268 HAVING count(*) = sum(CASE269 WHEN j.Ready2EXE = N 'FINISHED' THEN270 1271 ELSE 0272 END)) f273 ON q.UID_Tree = f.UID_Tree274 END275 DELETE @QueueMirror276 WHERE277 UID2 = ''278 UPDATE jobqueue279 SET ready2exe = N 'FALSE',280 ErrorMessages = dbo.QBM_FGIJobQueueMessageAdd(ErrorMessages,281 @JobqueueMessage),282 XDateUpdated = @Xdate,283 XUserUpdated = @XUser284 FROM Jobqueue q285 JOIN @QueueMirror m286 ON q.uid_tree = m.UID1 AND q.uid_Job <> m.UID2 AND q.ready2exe NOT IN(N 'FINISHED',287 N 'DELETE',288 N 'HISTORY',289 N 'FALSE')290 EXEC QBM_PSessionContextSet 'GenProcID',291 @GenProcID292 EXEC QBM_PSessionContextSet 'XUser',293 @XUser294 UPDATE jobqueue295 SET ready2exe = @NewState,296 ErrorMessages = dbo.QBM_FGIJobQueueMessageAdd(ErrorMessages,297 @JobqueueMessage),298 XDateUpdated = @Xdate,299 XUserUpdated = @XUser300 FROM jobqueue q301 JOIN @QueueMirror m302 ON q.uid_tree = m.UID1 AND q.uid_Job = m.UID2303 WHERE304 q.Ready2EXE <> @NewState305 EXEC QBM_PSessionContextSet 'GenProcID',306 @GenProcID307 EXEC QBM_PSessionContextSet 'XUser',308 @XUser309 SELECT @ElementCount = COUNT(*)310 FROM @QueueMirror311 SELECT @ElementIndex = 1312 WHILE @ElementIndex <= @ElementCount313 BEGIN314 SELECT315 TOP 1 @uid_tree = bu.UID1,316 @uid_job = bu.UID2317 FROM @QueueMirror bu318 WHERE319 bu.ElementIndex = @ElementIndex320 EXEC QBM_PJobQueueSetSameServer @uid_job321 SELECT @ElementIndex += 1322 END323 IF @UID_QBMServer > ' '324 BEGIN325 EXEC QBM_PQBMServerHasJobService @UID_QBMServer326 END327 SELECT328 @SQLOverviewUpdate = CONCAT('329 update QBMJobqueueOverview330 set IsInvalid = 1331 from QBMJobqueueOverview o 332 where o.IsInvalid = 0333 and o.UID_QBMJobqueueOverview = '''334 ,335 @UID_QBMJobqueueOverview,336 '''337')338 EXEC QBM_PExecuteSQLWithRetry_LLP @SQLStatement = @SQLOverviewUpdate,339 @LockTimeout_ms = 20,340 @MaxWaitTimeForLock_s = 5,341 @ProcIDForJournal = DEFAULT,342 @HandleErrorSilent = 0343 SET lock_timeout 500344 BEGIN TRY345 UPDATE QBMJobqueueOverview346 SET IsInvalid = 1347 FROM QBMJobqueueOverview o348 JOIN @AffectedQueuesExceptMe a349 ON o.UID_QBMJobqueueOverview = a.Parameter1350 WHERE351 o.IsInvalid = 0 AND o.IsInitQueueRunning = 0352 END TRY353 BEGIN CATCH354 SET lock_timeout -1355 END CATCH356 SET lock_timeout -1357 END TRY358 BEGIN CATCH359 EXEC QBM_PSessionErrorAdd DEFAULT360 DECLARE @Rethrow varchar(1000) = dbo.QBM_FGISessionErrorRethrow()361 RAISERROR(@Rethrow,362 18,363 1)364 WITH NOWAIT365 END CATCH366 ende:367 SELECT368 @SQLOverviewUpdate = CONCAT('369update QBMJobqueueOverview370 set IsInitQueueRunning = 0371 from QBMJobqueueOverview o 372 where o.UID_QBMJobqueueOverview = '''373 ,374 @UID_QBMJobqueueOverview,375 '''376 and o.IsInitQueueRunning = 1377')378 EXEC QBM_PExecuteSQLWithRetry_LLP @SQLStatement = @SQLOverviewUpdate,379 @LockTimeout_ms = 20,380 @MaxWaitTimeForLock_s = 5,381 @ProcIDForJournal = DEFAULT,382 @HandleErrorSilent = 0 endWithoutReset:383 EXEC QBM_PSessionContextSet 'GenProcID',384 @GenProcID_R385 EXEC QBM_PSessionContextSet 'XUser',386 @XUser_R387 RETURN388END
Open raw exported source
1 create procedure QBM_PJobQueueInit_i (@queue nvarchar(255), @SessionID varchar(38) = '' , @SetSessionOnly bit ) as begin declare @uid_tree2 varchar(38) declare @uid_job varchar(38) declare @SQLcmd nvarchar(max) declare @isMasterSQL int = 0 declare @UID_QBMServer varchar(38) declare @SessionID_DB3 varchar(38) declare @msg nvarchar(1000) declare @GenProcID varchar(38) declare @XUser nvarchar(64) declare @Xdate datetime = getutcdate() declare @UID_QBMJobqueueOverview4 varchar(38) = dbo.QBM_FCVStringToGUID('', @queue) declare @QueueMirror QBM_YCursorBuffer declare @ElementCount int declare @ElementIndex int declare 5@AffectedQueuesExceptMe QBM_YParameterlist declare @JobqueueMessage nvarchar(1000) declare @NewState nvarchar(16) declare @SQLOverviewUpdate nvarchar(max6) declare @OverviewUpdateRowcount int declare @GenProcID_R varchar(38) = dbo.QBM_FGISessionContext('') declare @XUser_R nvarchar(64) = dbo.QBM_FGISessionContext7('XUser') SET XACT_ABORT OFF BEGIN TRY select @GenProcID = dbo.QBM_FGISessionContext('') select @XUser = dbo.QBM_FGISessionContext('XUser') if isnull(@XUser8, '') = '' begin select @XUser = left(Object_name(@@procid), 64) exec QBM_PSessionContextSet 'GenProcID', @GenProcID exec QBM_PSessionContextSet 'XUser'9, @XUser end select top 1 @UID_QBMServer = UID_QBMServer , @SessionID_DB = isnull(SessionID, '') from QBMServer where QueueName = @queue if exists (select10 top 1 1 from QBMServerHasServerTag ht where ht.UID_QBMServer = @UID_QBMServer and ht.UID_QBMServerTag = 'QBM-ST-Is07' ) begin select @isMasterSQL = 1 11end if isnull(@UID_QBMServer, '') = '' begin if dbo.QBM_FGIConfigparmValue('Common\Jobservice\AutoCreateServerFromQueues') > ' ' begin select @UID_QBMServer12 = NEWID() select @SessionID_DB = @SessionID insert into QBMServer (QueueName, UID_QBMServer, XObjectKey , Ident_Server , XDateInserted, XDateUpdated,13 XUserInserted, XUserUpdated, SessionID ) select @queue, @UID_QBMServer, dbo.QBM_FCVElementToObjectKey1('QBMServer', 'UID_QBMServer', @UID_QBMServer) 14, case charindex('\', reverse(@queue)) when 0 then @queue else reverse(SUBSTRING(reverse(@queue), 1, charindex('\', reverse(@queue))-1 )) end as Ident_Server15 , GETUTCDATE(), GETUTCDATE(), @XUser, @XUser, @SessionID_DB end else begin select @msg = '#LDS#No server found for the queue {0}.|' + @queue + N'|' raiserror16(@msg, 18, 2) with nowait end end if isnull(@SessionID_DB, '') <> isnull(@SessionID, '') and @SessionID > ' ' begin exec QBM_PSessionContextSet 'GenProcID'17, @GenProcID exec QBM_PSessionContextSet 'XUser', @XUser update QBMServer set SessionID = @SessionID , XDateUpdated = @Xdate , XUserUpdated = @XUser where18 UID_QBMServer = @UID_QBMServer end if @SetSessionOnly = 1 begin goto endWithoutReset end select @SQLOverviewUpdate = concat('19update QBMJobqueueOverview 20 set IsInitQueueRunning = 121 from QBMJobqueueOverview o 22 where o.UID_QBMJobqueueOverview = '''23, @UID_QBMJobqueueOverview, '''24 and o.IsInitQueueRunning = 0' ) exec @OverviewUpdateRowcount = QBM_PExecuteSQLWithRetry_LLP @SQLStatement = @SQLOverviewUpdate25 , @LockTimeout_ms = 20 , @MaxWaitTimeForLock_s = 3 , @ProcIDForJournal = default , @HandleErrorSilent = 0 if @OverviewUpdateRowcount = 0 begin goto endWithoutReset26 end if (select top 1 DataOrigin from DialogDatabase d with (readpast) where d.IsMainDatabase = 1 ) <> dbo.QBM_FGIDBDataOrigin() begin select @JobqueueMessage27 = N'status set to FROZEN by reinitializing jobqueue because of wrong DialogDatabase.DataOrigin' select @NewState = 'FROZEN' end else begin select @JobqueueMessage28 = N'status changed by reinitializing jobqueue' select @NewState = 'TRUE' end exec QBM_PSessionContextSet 'GenProcID', @GenProcID exec QBM_PSessionContextSet29 'XUser', @XUser update jobqueue set ready2exe = @NewState , UID_JobSameServer = q.UID_Job , ErrorMessages = dbo.QBM_FGIJobQueueMessageAdd(ErrorMessages30, @JobqueueMessage) , XDateUpdated = @Xdate , XUserUpdated = @XUser from JobQueue q join (select UID_Tree, count(*) as CountItems from JobQueue where 31queue = @queue and Ready2EXE in (N'LOADED', N'PROCESSING', N'MISSING') group by UID_Tree having count(*) = 1 ) as x on q.UID_Tree = x.UID_Tree where ready2exe32 in (N'LOADED', N'PROCESSING', N'MISSING') and not exists (select top 1 1 from JobQueue q3 where q3.Ready2EXE in( N'DELETE', N'HISTORY') and q3.UID_Tree33 = q.UID_Tree ) update JobQueue set Ready2EXE = N'HISTORY' , ErrorMessages = dbo.QBM_FGIJobQueueMessageAdd(ErrorMessages, N'status set to HISTORY by reinitializing jobqueue because of undefined root job'34 ) , XDateUpdated = @Xdate , XUserUpdated = @XUser from JobQueue q join (select q2.UID_Tree from JobQueue q2 group by q2.UID_Tree having sum(convert(int35, q2.IsRootJob)) <> 1 ) as x on q.UID_Tree = x.UID_Tree where q.Ready2EXE not in (N'HISTORY', N'DELETE') insert into @QueueMirror (UID1 , UID2 ) select36 distinct q.uid_tree, dbo.QBM_FGIJobQueueTopJob(q.UID_Tree) from jobqueue q where q.queue = @queue and ( q.ready2exe in (N'LOADED', N'PROCESSING', N'MISSING'37, N'TRUE') or exists (select top 1 1 from ( select uid_tree , count(z.ready2exe) as CountItems from jobqueue q1 left outer join ( values (N'TRUE') , (38N'LOADED') , (N'PROCESSING') ) as z (Ready2exe) on z.ready2exe = q1.ready2exe group by uid_tree having count(z.ready2exe) = 0 ) as y where y.uid_tree =39 q.uid_tree ) ) and not exists (select top 1 1 from jobqueue q3 where q3.ready2exe in( N'FROZEN', N'OVERLIMIT' , N'DELETE', N'HISTORY' ) and q3.uid_tree40 = q.uid_tree ) and exists (select top 1 1 from jobqueue q4 where q4.uid_tree = q.uid_tree group by q4.uid_tree having count(*) > 1 ) insert into @AffectedQueuesExceptMe41(Parameter1) select distinct dbo.QBM_FCVStringToGUID('', q.Queue) from JobQueue q with (nolock) where q.UID_Tree in (select UID_Tree from @QueueMirror 42) and q.Queue <> @queue exec QBM_PSessionContextSet 'GenProcID', @GenProcID exec QBM_PSessionContextSet 'XUser', @XUser if exists (select top 1 1 from43 @QueueMirror m where m.UID2 = '' ) begin update jobqueue set Ready2EXE = N'HISTORY' , XDateUpdated = @Xdate , XUserUpdated = @XUser from JobQueue q44 join (select m.UID1 as UID_Tree from @QueueMirror m join JobQueue j on m.UID1 = j.UID_Tree where m.UID2 = '' group by m.UID1 having count(*) = sum (case45 when j.Ready2EXE = N'FINISHED' then 1 else 0 end ) ) f on q.UID_Tree = f.UID_Tree end delete @QueueMirror where UID2 = '' update jobqueue set ready2exe46 = N'FALSE' , ErrorMessages = dbo.QBM_FGIJobQueueMessageAdd(ErrorMessages, @JobqueueMessage) , XDateUpdated = @Xdate , XUserUpdated = @XUser from Jobqueue47 q join @QueueMirror m on q.uid_tree = m.UID1 and q.uid_Job <> m.UID2 and q.ready2exe not in ( N'FINISHED', N'DELETE', N'HISTORY' , N'FALSE' ) exec48 QBM_PSessionContextSet 'GenProcID', @GenProcID exec QBM_PSessionContextSet 'XUser', @XUser update jobqueue set ready2exe = @NewState , ErrorMessages =49 dbo.QBM_FGIJobQueueMessageAdd(ErrorMessages, @JobqueueMessage) , XDateUpdated = @Xdate , XUserUpdated = @XUser from jobqueue q join @QueueMirror m on50 q.uid_tree = m.UID1 and q.uid_Job = m.UID2 where q.Ready2EXE <> @NewState exec QBM_PSessionContextSet 'GenProcID', @GenProcID exec QBM_PSessionContextSet51 'XUser', @XUser select @ElementCount = COUNT(*) from @QueueMirror select @ElementIndex = 1 while @ElementIndex <= @ElementCount begin select top 1 @uid_tree52 = bu.UID1 , @uid_job = bu.UID2 from @QueueMirror bu where bu.ElementIndex = @ElementIndex exec QBM_PJobQueueSetSameServer @uid_job select @ElementIndex53 += 1 end if @UID_QBMServer > ' ' begin exec QBM_PQBMServerHasJobService @UID_QBMServer end select @SQLOverviewUpdate = concat('54 update QBMJobqueueOverview55 set IsInvalid = 156 from QBMJobqueueOverview o 57 where o.IsInvalid = 058 and o.UID_QBMJobqueueOverview = '''59, @UID_QBMJobqueueOverview, '''60' ) exec QBM_PExecuteSQLWithRetry_LLP @SQLStatement = @SQLOverviewUpdate , @LockTimeout_ms = 20 , @MaxWaitTimeForLock_s61 = 5 , @ProcIDForJournal = default , @HandleErrorSilent = 0 set lock_timeout 500 begin Try update QBMJobqueueOverview set IsInvalid = 1 from QBMJobqueueOverview62 o join @AffectedQueuesExceptMe a on o.UID_QBMJobqueueOverview = a.Parameter1 where o.IsInvalid = 0 and o.IsInitQueueRunning = 0 end Try begin catch set63 lock_timeout -1 end catch set lock_timeout -1 END TRY BEGIN CATCH exec QBM_PSessionErrorAdd default declare @Rethrow varchar(1000) = dbo.QBM_FGISessionErrorRethrow64() RAISERROR (@Rethrow, 18, 1) WITH NOWAIT END CATCH ende: select @SQLOverviewUpdate = concat('65update QBMJobqueueOverview66 set IsInitQueueRunning = 067 from QBMJobqueueOverview o 68 where o.UID_QBMJobqueueOverview = '''69, @UID_QBMJobqueueOverview, '''70 and o.IsInitQueueRunning = 171' ) exec QBM_PExecuteSQLWithRetry_LLP @SQLStatement = @SQLOverviewUpdate , @LockTimeout_ms72 = 20 , @MaxWaitTimeForLock_s = 5 , @ProcIDForJournal = default , @HandleErrorSilent = 0 endWithoutReset: exec QBM_PSessionContextSet 'GenProcID', @GenProcID_R73 exec QBM_PSessionContextSet 'XUser', @XUser_R return end 74