Cleanup Sessions and Owners before beginning a session

This commit is contained in:
Rich 2017-02-10 16:22:09 +00:00
parent 8eb8874b6f
commit 0deea55d7e

View File

@ -7507,6 +7507,17 @@ CREATE PROCEDURE [dbo].[vesp_SessionBegin]
WITH EXECUTE AS OWNER WITH EXECUTE AS OWNER
AS AS
BEGIN TRY -- Try Block BEGIN TRY -- Try Block
BEGIN TRANSACTION
-- Cleanup Old Records before checking for Owner Records
--delete old closed sessions
DELETE FROM Sessions WHERE UserID = @UserID and DTSEnd is not null
--delete old owners from inactive sessions
DELETE FROM Owners WHERE SessionID in (SELECT SessionID FROM Sessions WHERE UserID = @UserID and DTSEnd is null and DTSActivity < DATEADD(minute, -5, getdate()))
DELETE FROM Owners WHERE SessionID in (SELECT SessionID FROM Sessions WHERE DTSEnd is null and DTSActivity < DATEADD(minute, -15, getdate()))
--delete inactive sessions where last activity is before 15 minutes ago
DELETE FROM Sessions WHERE UserID = @UserID and DTSEnd is null and DTSActivity < DATEADD(minute, -5, getdate())
DELETE FROM Sessions WHERE DTSEnd is null and DTSActivity < DATEADD(minute, -15, getdate())
DELETE FROM Owners WHERE SessionID not in (SELECT SessionID FROM Sessions)
DECLARE @oCount int DECLARE @oCount int
SELECT @oCount = count(*) FROM Owners WHERE OwnerType = 4 SELECT @oCount = count(*) FROM Owners WHERE OwnerType = 4
IF @oCount > 0 BEGIN IF @oCount > 0 BEGIN
@ -7524,16 +7535,6 @@ BEGIN TRY -- Try Block
WHERE [SessionID]=0 WHERE [SessionID]=0
END END
ELSE BEGIN ELSE BEGIN
BEGIN TRANSACTION
--delete old closed sessions
DELETE FROM Sessions WHERE UserID = @UserID and DTSEnd is not null
--delete old owners from inactive sessions
DELETE FROM Owners WHERE SessionID in (SELECT SessionID FROM Sessions WHERE UserID = @UserID and DTSEnd is null and DTSActivity < DATEADD(minute, -5, getdate()))
DELETE FROM Owners WHERE SessionID in (SELECT SessionID FROM Sessions WHERE DTSEnd is null and DTSActivity < DATEADD(minute, -15, getdate()))
--delete inactive sessions where last activity is before 15 minutes ago
DELETE FROM Sessions WHERE UserID = @UserID and DTSEnd is null and DTSActivity < DATEADD(minute, -5, getdate())
DELETE FROM Sessions WHERE DTSEnd is null and DTSActivity < DATEADD(minute, -15, getdate())
DELETE FROM Owners WHERE SessionID not in (SELECT SessionID FROM Sessions)
INSERT INTO [Sessions]([UserID],[MachineName],[ProcessID]) INSERT INTO [Sessions]([UserID],[MachineName],[ProcessID])
VALUES (@UserID, @MachineName, @ProcessID) VALUES (@UserID, @MachineName, @ProcessID)
SELECT SELECT
@ -13115,7 +13116,7 @@ IF (@@Error = 0) PRINT 'StoredProcedure [vesp_CleanUpROAssociations] Succeeded'
ELSE PRINT 'StoredProcedure [vesp_CleanUpROAssociations] Error on Creation' ELSE PRINT 'StoredProcedure [vesp_CleanUpROAssociations] Error on Creation'
go go
PRINT 'Admin Tools Additional queries for Cleanup RO Assoc and Cleanup of Unused RO Fsts and Figures.' PRINT 'Updated vesp_SessionBegin to clear old Owner Records'
----------------------------------------------------------------------------- -----------------------------------------------------------------------------
/* /*
@ -13142,8 +13143,8 @@ BEGIN TRY -- Try Block
set nocount on set nocount on
DECLARE @RevDate varchar(255) DECLARE @RevDate varchar(255)
DECLARE @RevDescription varchar(255) DECLARE @RevDescription varchar(255)
set @RevDate = '10/31/2016 2:40 PM' set @RevDate = '1/9/2017 4:45 PM'
set @RevDescription = 'Removed Kewneee, Point Beach, and un-used Summer formats' set @RevDescription = 'Fixed vesp_SessionBegin'
Select cast(@RevDate as datetime) RevDate, @RevDescription RevDescription Select cast(@RevDate as datetime) RevDate, @RevDescription RevDescription
PRINT 'SQL Code Revision ' + @RevDate + ' - ' + @RevDescription PRINT 'SQL Code Revision ' + @RevDate + ' - ' + @RevDescription
IF( @@TRANCOUNT > 0 ) COMMIT IF( @@TRANCOUNT > 0 ) COMMIT