dbo.QBM_PWorkDBQueueDelete
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_FGIDBQueueActivityDisabled source text reference
- references source dbo.QBM_FGISessionContext source text reference
- references source dbo.QBM_FGISessionErrorIsDeadlock source text reference
- references source dbo.QBM_FGISessionErrorIsMissingCo source text reference
- references source dbo.QBM_FGISessionErrorRethrow source text reference
- references source dbo.QBM_PDBQueueAgentInfoSet source text reference
- references source dbo.QBM_PDialogDBQueueDelete source text reference
- references source dbo.QBM_PQBMDBQueueCurrentDelete source text reference
- references source dbo.QBM_PQBMDBQueuePondDelete source text reference
- references source dbo.QBM_PSessionContextSet source text reference
- references source dbo.QBM_PSessionErrorAdd source text reference
- references source dbo.QBM_PSessionErrorClean source text reference
- references source dbo.QBM_PTransactionLevelCheck source text reference
- references source dbo.QBM_PWaitForSeconds source text reference
References
- dbo.QBM_FGIDBQueueActivityDisabled
- dbo.QBM_FGISessionContext
- dbo.QBM_FGISessionErrorIsDeadlock
- dbo.QBM_FGISessionErrorIsMissingCo
- dbo.QBM_FGISessionErrorRethrow
- dbo.QBM_PDBQueueAgentInfoSet
- dbo.QBM_PDialogDBQueueDelete
- dbo.QBM_PQBMDBQueueCurrentDelete
- dbo.QBM_PQBMDBQueuePondDelete
- dbo.QBM_PSessionContextSet
- dbo.QBM_PSessionErrorAdd
- dbo.QBM_PSessionErrorClean
- dbo.QBM_PTransactionLevelCheck
- dbo.QBM_PWaitForSeconds
Referenced By
- No direct source references extracted.
Complete Source
1CREATE PROCEDURE QBM_PWorkDBQueueDelete(2 @PartToDelete int,3 @RunningSecondsMax int,4 @TimeLimitReached int OUTPUT5)6AS7BEGIN8 DECLARE @procname nvarchar(256) = CONCAT(object_name(@@procid),9 trim(str(@PartToDelete)))10 DECLARE @Starttime datetime = getutcdate()11 SELECT @TimeLimitReached = 012 DECLARE @AnzahlDialogDBQueue int = 013 DECLARE @AnzahlQBMDBQueueCurrent int = 014 DECLARE @AnzahlQBMDBQueuePond int = 015 IF @PartToDelete = 116 BEGIN17 SELECT @AnzahlDialogDBQueue = 118 END19 IF @PartToDelete = 220 BEGIN21 SELECT @AnzahlQBMDBQueueCurrent = 122 END23 IF @PartToDelete = 324 BEGIN25 SELECT @AnzahlQBMDBQueuePond = 126 END27 IF @PartToDelete NOT IN(1,28 2,29 3)30 BEGIN31 GOTO endlabel32 END33 DECLARE @XUser nvarchar(64) = object_name(@@procid)34 DECLARE @GenProcID_R varchar(38) = dbo.QBM_FGISessionContext('')35 DECLARE @XUser_R nvarchar(64) = dbo.QBM_FGISessionContext('XUser')36 SET XACT_ABORT OFF37 BEGIN TRY38 EXEC QBM_PSessionContextSet 'XUser',39 @XUser40 IF 0 =(41 SELECT42 min(sign(len(ISNULL(p.name, '')))) AS StartBisHierGeschafft43 FROM(44 VALUES('QBMModuleDef'),('QBM_PSessionErrorAdd'),('QBM_FGISessionErrorIsDeadlock'),('QBM_FGISessionErrorIsMissingCo'),45 ('QBM_FGIDBQueueActivityDisabled'),('QBM_PDialogDBQueueDelete'),('QBM_PQBMDBQueueCurrentDelete'),('QBM_PTransactionLevelCheck'),46 ('QBM_PWaitForSeconds'),('QBMDBQueueCurrent'),('QBM_PQBMDBQueuePondDelete')) AS v(ProcedureName)47 LEFT48 OUTER49 JOIN sys.objects p50 WITH(readpast)51 ON p.name = v.ProcedureName)52 BEGIN53 GOTO EndLabel54 END55 EXEC QBM_PDBQueueAgentInfoSet @procname56 EXEC QBM_PTransactionLevelCheck 0,57 @@procid,58 'at start'59 SET deadlock_priority -1060 SET lock_timeout 5061 WHILE(@AnzahlQBMDBQueueCurrent + @AnzahlDialogDBQueue + @AnzahlQBMDBQueuePond) > 0 AND @TimeLimitReached = 0 AND dbo.QBM_FGIDBQueueActivityDisabled62 () = 063 BEGIN64 SET lock_timeout 5065 IF @AnzahlQBMDBQueueCurrent > 0 AND @PartToDelete = 266 BEGIN67 BEGIN TRY68 EXEC @AnzahlQBMDBQueueCurrent = QBM_PQBMDBQueueCurrentDelete69 END TRY70 BEGIN CATCH71 EXEC QBM_PSessionErrorAdd DEFAULT72 IF dbo.QBM_FGISessionErrorIsDeadlock(DEFAULT) = 0 AND dbo.QBM_FGISessionErrorIsMissingCo(DEFAULT) = 073 BEGIN74 RAISERROR('',75 18,76 1)77 WITH NOWAIT78 END79 ELSE80 BEGIN81 SELECT @AnzahlQBMDBQueueCurrent = 182 EXEC QBM_PSessionErrorClean83 END84 END CATCH85 END86 IF @AnzahlDialogDBQueue > 0 AND @PartToDelete = 187 BEGIN88 BEGIN TRY89 EXEC @AnzahlDialogDBQueue = QBM_PDialogDBQueueDelete90 END TRY91 BEGIN CATCH92 EXEC QBM_PSessionErrorAdd DEFAULT93 IF dbo.QBM_FGISessionErrorIsDeadlock(DEFAULT) = 0 AND dbo.QBM_FGISessionErrorIsMissingCo(DEFAULT) = 094 BEGIN95 RAISERROR('',96 18,97 1)98 WITH NOWAIT99 END100 ELSE101 BEGIN102 SELECT @AnzahlDialogDBQueue = 1103 EXEC QBM_PSessionErrorClean104 END105 END CATCH106 END107 IF @AnzahlQBMDBQueuePond > 0 AND @PartToDelete = 3108 BEGIN109 BEGIN TRY110 EXEC @AnzahlQBMDBQueuePond = QBM_PQBMDBQueuePondDelete111 END TRY112 BEGIN CATCH113 EXEC QBM_PSessionErrorAdd DEFAULT114 IF dbo.QBM_FGISessionErrorIsDeadlock(DEFAULT) = 0 AND dbo.QBM_FGISessionErrorIsMissingCo(DEFAULT) = 0115 BEGIN116 RAISERROR('',117 18,118 1)119 WITH NOWAIT120 END121 ELSE122 BEGIN123 SELECT @AnzahlQBMDBQueuePond = 1124 EXEC QBM_PSessionErrorClean125 END126 END CATCH127 END128 EXEC QBM_PWaitForSeconds 0.040129 IF DATEDIFF(ss,130 @Starttime,131 getutcdate()) > @RunningSecondsMax132 BEGIN133 SELECT @TimeLimitReached = 1134 END135 END136 END TRY137 BEGIN CATCH138 EXEC QBM_PSessionErrorAdd DEFAULT139 IF dbo.QBM_FGISessionErrorIsDeadlock(DEFAULT) = 0 AND dbo.QBM_FGISessionErrorIsMissingCo(DEFAULT) = 0140 BEGIN141 DECLARE @Rethrow varchar(1000) = dbo.QBM_FGISessionErrorRethrow()142 RAISERROR(@Rethrow,143 18,144 1)145 WITH NOWAIT146 END147 ELSE148 BEGIN149 EXEC QBM_PSessionErrorClean150 END151 END CATCH152 endLabel:153 EXEC QBM_PSessionContextSet 'GenProcID',154 @GenProcID_R155 EXEC QBM_PSessionContextSet 'XUser',156 @XUser_R157 EXEC QBM_PDBQueueAgentInfoSet @procname,158 1159 SET lock_timeout -1160 RETURN161END
Open raw exported source
1 create procedure QBM_PWorkDBQueueDelete (@PartToDelete int , @RunningSecondsMax int , @TimeLimitReached int output ) as begin declare @procname2 nvarchar(256) = concat(object_name(@@procid), trim(str(@PartToDelete))) declare @Starttime datetime = getutcdate() select @TimeLimitReached = 0 declare3 @AnzahlDialogDBQueue int = 0 declare @AnzahlQBMDBQueueCurrent int = 0 declare @AnzahlQBMDBQueuePond int = 0 if @PartToDelete = 1 begin select @AnzahlDialogDBQueue4 = 1 end if @PartToDelete = 2 begin select @AnzahlQBMDBQueueCurrent = 1 end if @PartToDelete = 3 begin select @AnzahlQBMDBQueuePond = 1 end if @PartToDelete5 not in (1,2,3) begin goto endlabel end declare @XUser nvarchar(64) = object_name(@@procid) declare @GenProcID_R varchar(38) = dbo.QBM_FGISessionContext6('') declare @XUser_R nvarchar(64) = dbo.QBM_FGISessionContext('XUser') SET XACT_ABORT OFF BEGIN TRY exec QBM_PSessionContextSet 'XUser', @XUser 7 if 0 = (select min(sign(len(ISNULL(p.name, '')))) as StartBisHierGeschafft from ( values ('QBMModuleDef') , ('QBM_PSessionErrorAdd') , ('QBM_FGISessionErrorIsDeadlock'8) , ('QBM_FGISessionErrorIsMissingCo') , ('QBM_FGIDBQueueActivityDisabled') , ('QBM_PDialogDBQueueDelete') , ('QBM_PQBMDBQueueCurrentDelete') , ('QBM_PTransactionLevelCheck'9) , ('QBM_PWaitForSeconds') , ('QBMDBQueueCurrent') , ('QBM_PQBMDBQueuePondDelete') ) as v (ProcedureName) left outer join sys.objects p with (readpast10) on p.name = v.ProcedureName ) begin goto EndLabel end exec QBM_PDBQueueAgentInfoSet @procname exec QBM_PTransactionLevelCheck 0, @@procid, 'at start'11 set deadlock_priority -10 set lock_timeout 50 while (@AnzahlQBMDBQueueCurrent + @AnzahlDialogDBQueue + @AnzahlQBMDBQueuePond) > 120 and @TimeLimitReached = 0 and dbo.QBM_FGIDBQueueActivityDisabled() = 0 begin set lock_timeout 50 if @AnzahlQBMDBQueueCurrent > 0 and @PartToDelete13 = 2 begin BEGIN TRY exec @AnzahlQBMDBQueueCurrent = QBM_PQBMDBQueueCurrentDelete END TRY BEGIN CATCH exec QBM_PSessionErrorAdd default if dbo.QBM_FGISessionErrorIsDeadlock14(default) = 0 and dbo.QBM_FGISessionErrorIsMissingCo(default) = 0 begin RAISERROR ('', 18, 1) WITH NOWAIT end else begin select @AnzahlQBMDBQueueCurrent15 = 1 exec QBM_PSessionErrorClean end END CATCH end if @AnzahlDialogDBQueue > 0 and @PartToDelete = 1 begin BEGIN TRY exec @AnzahlDialogDBQueue = 16QBM_PDialogDBQueueDelete END TRY BEGIN CATCH exec QBM_PSessionErrorAdd default if dbo.QBM_FGISessionErrorIsDeadlock(default) = 0 and dbo.QBM_FGISessionErrorIsMissingCo17(default) = 0 begin RAISERROR ('', 18, 1) WITH NOWAIT end else begin select @AnzahlDialogDBQueue = 1 exec QBM_PSessionErrorClean end END CATCH end 18 if @AnzahlQBMDBQueuePond > 0 and @PartToDelete = 3 begin BEGIN TRY exec @AnzahlQBMDBQueuePond = QBM_PQBMDBQueuePondDelete END TRY BEGIN CATCH exec 19QBM_PSessionErrorAdd default if dbo.QBM_FGISessionErrorIsDeadlock(default) = 0 and dbo.QBM_FGISessionErrorIsMissingCo(default) = 0 begin RAISERROR (''20, 18, 1) WITH NOWAIT end else begin select @AnzahlQBMDBQueuePond = 1 exec QBM_PSessionErrorClean end END CATCH end exec QBM_PWaitForSeconds 0.040 if 21DATEDIFF(ss, @Starttime, getutcdate()) > @RunningSecondsMax begin select @TimeLimitReached = 1 end end END TRY BEGIN CATCH exec QBM_PSessionErrorAdd default22 if dbo.QBM_FGISessionErrorIsDeadlock(default) = 0 and dbo.QBM_FGISessionErrorIsMissingCo(default) = 0 begin declare @Rethrow varchar(1000) = dbo.QBM_FGISessionErrorRethrow23() RAISERROR (@Rethrow, 18, 1) WITH NOWAIT end else begin exec QBM_PSessionErrorClean end END CATCH endLabel: exec QBM_PSessionContextSet 'GenProcID', 24@GenProcID_R exec QBM_PSessionContextSet 'XUser', @XUser_R exec QBM_PDBQueueAgentInfoSet @procname, 1 set lock_timeout -1 return end 25