Back to OIM Explorer

dbo.QBM_PJobQueueInit

Stored ProcedureSQL_STORED_PROCEDURESandbox DB

Stored Procedure.

Source: sandbox-db sys.sql_modules

Source size: 1.659 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_FGISessionErrorRethrow source text reference
  • references source dbo.QBM_PJobQueueInit_i source text reference
  • references source dbo.QBM_PSessionErrorAdd source text reference
  • references source dbo.QBM_PWaitForSeconds source text reference

Complete Source

SQL72 lines
1CREATE PROCEDURE QBM_PJobQueueInit(2  @queue nvarchar(255),3  @SessionID varchar(38) = '',4  @MaxWaitTimeForLock_s int = 405)6AS7BEGIN8  DECLARE @TestBetrieb BIT = 09  DECLARE @RCAppLockRequest int = 010  DECLARE @MyName nvarchar(64) = object_name(@@procid)11  DECLARE @WartenEinVersuch_ms int = 100012  DECLARE @WartenBisWiederholung_s int = 113  DECLARE @Gestartet datetime = getutcdate()14  DECLARE @HabeInitialisiert int = 115  SET XACT_ABORT OFF16  BEGIN17    TRANSACTION18    BEGIN TRY19      WirVersuchen:20      IF datediff(ss,21      @Gestartet,22      getutcdate()) > @MaxWaitTimeForLock_s23      BEGIN24        SELECT @HabeInitialisiert = -125        EXEC QBM_PJobQueueInit_i @Queue,26          @SessionID,27          @SetSessionOnly = 128        GOTO endlabel29      END30      IF NOT EXISTS(31        SELECT TOP 1 132        FROM JobQueue q33        WITH(readpast)34      WHERE35        q.Ready2EXE IN(N 'LOADED', N 'PROCESSING', N 'MISSING', 'FINISHED') AND q.Queue = @queue) AND @TestBetrieb = 036      BEGIN37        EXEC QBM_PJobQueueInit_i @Queue,38          @SessionID,39          @SetSessionOnly = 140        GOTO endLabel41      END42      EXEC @RCAppLockRequest = sys.sp_getapplock @Resource = @MyName,43        @LockMode= 'Exclusive',44        @LockOwner= 'Transaction',45        @LockTimeout = @WartenEinVersuch_ms46      IF @RCAppLockRequest < 047      BEGIN48        EXEC QBM_PWaitForSeconds @WartenBisWiederholung_s49        GOTO wirVersuchen50      END51      EXEC QBM_PJobQueueInit_i @Queue,52        @SessionID,53        @SetSessionOnly = 054    END TRY55    BEGIN CATCH56      SELECT @HabeInitialisiert = -157      EXEC QBM_PSessionErrorAdd DEFAULT58      DECLARE @Rethrow varchar(1000) = dbo.QBM_FGISessionErrorRethrow()59      RAISERROR(@Rethrow,60      18,61      1)62        WITH NOWAIT63    END CATCH64    EndeMitRelease:65    EXEC sp_releaseapplock @Resource = @MyName,66      @LockOwner = 'Transaction' EndLabel:67    IF @@TRANCOUNT > 068    BEGIN69      COMMIT TRANSACTION70    END71    RETURN(@HabeInitialisiert)72  END
Open raw exported source
SQL ยท Raw12 lines
1   create   procedure QBM_PJobQueueInit (@queue nvarchar(255) , @SessionID varchar(38) = ''  , @MaxWaitTimeForLock_s int = 40  ) as begin declare2 @TestBetrieb bit = 0 declare @RCAppLockRequest int = 0 declare @MyName nvarchar(64) = object_name(@@procid) declare @WartenEinVersuch_ms int = 1000 declare3 @WartenBisWiederholung_s int = 1 declare @Gestartet datetime = getutcdate() declare @HabeInitialisiert int = 1 SET XACT_ABORT OFF begin transaction BEGIN4 TRY WirVersuchen: if datediff(ss, @Gestartet, getutcdate()) > @MaxWaitTimeForLock_s begin select @HabeInitialisiert = -1 exec QBM_PJobQueueInit_i @Queue5, @SessionID, @SetSessionOnly = 1 goto endlabel end if not exists (select top 1 1 from JobQueue q with (readpast) where q.Ready2EXE in (N'LOADED', N'PROCESSING'6, N'MISSING', 'FINISHED') and q.Queue = @queue ) and @TestBetrieb = 0 begin   exec QBM_PJobQueueInit_i @Queue, @SessionID, @SetSessionOnly = 1 goto endLabel7 end exec @RCAppLockRequest = sys.sp_getapplock @Resource = @MyName , @LockMode='Exclusive' , @LockOwner='Transaction' , @LockTimeout = @WartenEinVersuch_ms8 if @RCAppLockRequest < 0 begin   exec QBM_PWaitForSeconds @WartenBisWiederholung_s  goto wirVersuchen end   exec QBM_PJobQueueInit_i @Queue, @SessionID9, @SetSessionOnly = 0  END TRY BEGIN CATCH select @HabeInitialisiert = -1 exec QBM_PSessionErrorAdd default declare @Rethrow varchar(1000) = dbo.QBM_FGISessionErrorRethrow10() RAISERROR (@Rethrow, 18, 1) WITH NOWAIT  END CATCH EndeMitRelease: exec sp_releaseapplock @Resource = @MyName , @LockOwner = 'Transaction' EndLabel:11 if @@TRANCOUNT > 0 begin commit transaction  end  return (@HabeInitialisiert) end 12