Back to OIM Explorer

dbo.QBM_PSlotResetWhileJobRun_L

Stored ProcedureSQL_STORED_PROCEDURESandbox DB

Stored Procedure.

Source: sandbox-db sys.sql_modules

Source size: 3.514 characters

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_FGIDBQueueSlotResetType source text reference
  • references source dbo.QBM_FGIJobCreateName source text reference
  • references source dbo.QBM_FGISessionErrorRethrow source text reference
  • references source dbo.QBM_PDBQCS_CurrentMoveSlot source text reference
  • references source dbo.QBM_PJournal source text reference
  • references source dbo.QBM_PSessionErrorAdd source text reference

References

Referenced By

Complete Source

SQL143 lines
1CREATE PROCEDURE QBM_PSlotResetWhileJobRun_L(2  @DBQueueCurrent QBM_YDBQueueCurrent READONLY,3  @Procid int,4  @ObjectKeysToCheck QBM_YParameterList READONLY,5  @JobChainNameAddOn nvarchar(256) = NULL,6  @CountParameterOfTask int = 1,7  @SlotNumber int = 08)9AS10BEGIN11  DECLARE @erg int = 012  DECLARE @msg nvarchar(1000)13  DECLARE @DebugLevel varchar(1) = 'W'14  DECLARE @SuppressCount int = 3015  DECLARE @UID_Task varchar(38)16  DECLARE @Procedurename nvarchar(64)17  DECLARE @Procedurename_Z nvarchar(64)18  DECLARE @Jobchainname nvarchar(256)19  DECLARE @SlotNumberSource int20  DECLARE @SlotNumberTarget int21  DECLARE @DBQueueToMove QBM_YDBQCSCurrentToMove22  DECLARE @RowsMoved int23  SET XACT_ABORT OFF24  BEGIN TRY25    IF EXISTS(26      SELECT TOP 1 127      FROM DialogConfigParm c28      WHERE29        c.UID_ConfigParm = 'TST-53D4A8BCCE4545BBA3A583F45DD57968')30    BEGIN31      SELECT @Procedurename = OBJECT_NAME(@procid)32      SELECT TOP 1 @UID_Task = t.UID_Task33      FROM QBMDBQueueTaskMetric t34        WITH(nolock)35      WHERE36        t.ProcedureName = @Procedurename37      SELECT38        @msg = 'No resetting for Task ' + isnull(isnull(@UID_Task, @Procedurename),39        'not named') + '.'40      EXEC dbo.QBM_PJournal @msg,41        @@PROCID,42      'W',43        @DebugLevel44      GOTO ende45    END46    SELECT @Jobchainname = NULL47    SELECT TOP 1 @Jobchainname = jq.JobChainName48    FROM @DBQueueCurrent pp49    JOIN @ObjectKeysToCheck oc50      ON pp.UID_Parameter = oc.Parameter151    JOIN QBMElementAffectedByJob ea52      WITH(nolock)53      ON ea.ObjectKeyAffected = oc.Parameter254    JOIN JobQueue jq55      WITH(nolock)56      ON ea.UID_Job = jq.UID_Job AND jq.IsNoDBQueueDefer = 057    WHERE58      jq.Ready2EXE LIKE N '[^DH][^I]%'59    IF @Jobchainname IS NOT NULL60    BEGIN61      DELETE @DBQueueToMove62      INSERT INTO @DBQueueToMove(UID_DialogDBQueue)63      SELECT cul.UID_DialogDBQueue64      FROM @DBQueueCurrent cul65      JOIN @ObjectKeysToCheck oc66        ON cul.UID_Parameter = oc.Parameter1 AND ISNULL(cul.UID_SubParameter,67      '') = CASE @CountParameterOfTask68      WHEN 1 THEN69      ISNULL(cul.UID_SubParameter,70      '')71      WHEN 2 THEN72      oc.Parameter373      ELSE 'x'74      END75      JOIN QBMElementAffectedByJob ea76        WITH(readpast)77        ON ea.ObjectKeyAffected = oc.Parameter278      JOIN JobQueue jq79        WITH(readpast)80        ON ea.UID_Job = jq.UID_Job AND jq.IsNoDBQueueDefer = 081      WHERE82        jq.JobChainName LIKE CASE83      WHEN isnull(@JobChainNameAddOn,84      '') = '' THEN85      '%'86      WHEN @JobChainNameAddOn LIKE '%[%]' THEN87      @JobChainNameAddOn88      ELSE dbo.QBM_FGIJobCreateName(@JobChainNameAddOn) + '%'89      END AND jq.Ready2EXE LIKE N '[^DH][^I]%'90      SELECT @erg = @@rowcount91      IF @erg > 092      BEGIN93        SELECT @SlotNumberSource = @SlotNumber94        SELECT @SlotnumberTarget = dbo.QBM_FGIDBQueueSlotResetType('JobQueue')95        EXEC @RowsMoved = QBM_PDBQCS_CurrentMoveSlot @DBQueueToMove,96          @SlotNumberSource,97          @SlotnumberTarget98      END99    END100    IF @RowsMoved > 0101    BEGIN102      SELECT @Procedurename = OBJECT_NAME(@procid)103      IF @Procedurename LIKE '___[_]R%'104      BEGIN105        SELECT @Procedurename_Z = CONCAT(106        LEFT(@Procedurename, 4),107        'Z',108        SUBSTRING(@Procedurename, 6, 30))109      END110      ELSE111      BEGIN112        SELECT @Procedurename_Z = @Procedurename113      END114      SELECT TOP 1 @UID_Task = t.UID_Task115      FROM QBMDBQueueTaskMetric t116        WITH(nolock)117      WHERE118        t.ProcedureName = @Procedurename_Z119      SELECT120        @msg = CONCAT('#LDS#Resetting DBQueue tasks {0} because processes {1} related to objects on these tasks are still running in JobQueue.|'121        ,122        isnull(isnull(@UID_Task, @Procedurename_Z), 'not named'),123        '|',124        @Jobchainname,125        '|')126      EXEC dbo.QBM_PJournal @msg,127        @@PROCID,128      'W',129        @DebugLevel,130        @SuppressCount131    END132  END TRY133  BEGIN CATCH134    EXEC QBM_PSessionErrorAdd DEFAULT135    DECLARE @Rethrow varchar(1000) = dbo.QBM_FGISessionErrorRethrow()136    RAISERROR(@Rethrow,137    18,138    1)139      WITH NOWAIT140  END CATCH141  ende:142  RETURN(@erg)143END
Open raw exported source
SQL ยท Raw24 lines
1   create   procedure QBM_PSlotResetWhileJobRun_L (@DBQueueCurrent QBM_YDBQueueCurrent readonly , @Procid int  , @ObjectKeysToCheck QBM_YParameterList2 readonly     , @JobChainNameAddOn nvarchar(256) = null  , @CountParameterOfTask int = 1  , @SlotNumber int = 0 ) as begin declare @erg int = 0 declare3 @msg nvarchar(1000) declare @DebugLevel varchar(1) = 'W' declare @SuppressCount int = 30  declare @UID_Task varchar(38) declare @Procedurename nvarchar4(64) declare @Procedurename_Z nvarchar(64) declare @Jobchainname nvarchar(256) declare @SlotNumberSource int declare @SlotNumberTarget int declare @DBQueueToMove5 QBM_YDBQCSCurrentToMove declare @RowsMoved int SET XACT_ABORT OFF BEGIN TRY  if exists (select top 1 1 from DialogConfigParm c where c.UID_ConfigParm 6= 'TST-53D4A8BCCE4545BBA3A583F45DD57968' ) begin select @Procedurename = OBJECT_NAME(@procid) select top 1 @UID_Task = t.UID_Task from QBMDBQueueTaskMetric7 t with (nolock) where t.ProcedureName = @Procedurename select @msg = 'No resetting for Task '+ isnull(isnull(@UID_Task, @Procedurename) , 'not named')8 + '.' exec dbo.QBM_PJournal @msg, @@PROCID, 'W', @DebugLevel goto ende end   select @Jobchainname = null select top 1 @Jobchainname = jq.JobChainName 9from @DBQueueCurrent pp join @ObjectKeysToCheck oc on pp.UID_Parameter = oc.Parameter1 join QBMElementAffectedByJob ea with (nolock) on ea.ObjectKeyAffected10 = oc.Parameter2 join JobQueue jq with (nolock) on ea.UID_Job = jq.UID_Job  and jq.IsNoDBQueueDefer = 0 where jq.Ready2EXE like N'[^DH][^I]%' if @Jobchainname11 is not null   begin   delete @DBQueueToMove  insert into @DBQueueToMove(UID_DialogDBQueue) select cul.UID_DialogDBQueue from @DBQueueCurrent cul join 12@ObjectKeysToCheck oc on cul.UID_Parameter = oc.Parameter1 and ISNULL(cul.UID_SubParameter, '') = case @CountParameterOfTask when 1 then ISNULL(cul.UID_SubParameter13, '') when 2 then oc.Parameter3 else 'x' end join QBMElementAffectedByJob ea with (readpast) on ea.ObjectKeyAffected = oc.Parameter2 join JobQueue jq with14 (readpast) on ea.UID_Job = jq.UID_Job  and jq.IsNoDBQueueDefer = 0 where jq.JobChainName like case when isnull(@JobChainNameAddOn, '') = '' then '%' when15 @JobChainNameAddOn like '%[%]' then @JobChainNameAddOn else dbo.QBM_FGIJobCreateName(@JobChainNameAddOn) + '%' end  and jq.Ready2EXE like N'[^DH][^I]%'16    select @erg = @@rowcount if @erg > 0 begin select @SlotNumberSource = @SlotNumber  select @SlotnumberTarget = dbo.QBM_FGIDBQueueSlotResetType('JobQueue'17) exec @RowsMoved = QBM_PDBQCS_CurrentMoveSlot @DBQueueToMove, @SlotNumberSource, @SlotnumberTarget end end if @RowsMoved > 0 begin select @Procedurename18 = OBJECT_NAME(@procid) if @Procedurename like '___[_]R%' begin select @Procedurename_Z = concat(LEFT(@Procedurename, 4) , 'Z' , SUBSTRING(@Procedurename19, 6, 30) ) end else begin select @Procedurename_Z = @Procedurename end select top 1 @UID_Task = t.UID_Task from QBMDBQueueTaskMetric t with (nolock) where20 t.ProcedureName = @Procedurename_Z select @msg = concat('#LDS#Resetting DBQueue tasks {0} because processes {1} related to objects on these tasks are still running in JobQueue.|'21 , isnull(isnull(@UID_Task, @Procedurename_Z) , 'not named') , '|' , @Jobchainname , '|' ) exec dbo.QBM_PJournal @msg, @@PROCID, 'W', @DebugLevel , @SuppressCount22 end END TRY BEGIN CATCH exec QBM_PSessionErrorAdd default declare @Rethrow varchar(1000) = dbo.QBM_FGISessionErrorRethrow() RAISERROR (@Rethrow, 18, 123) WITH NOWAIT END CATCH  ende: return (@erg) end 24