windows-nt/Source/XPSP1/NT/termsrv/sessdir/dis/tsdissp.sql
2020-09-26 16:20:57 +08:00

82 lines
2.7 KiB
Transact-SQL

/****************************************************************************/
-- tssdsp.sql
--
-- Terminal Server Session Directory Integrity Service stored procedures.
--
-- Copyright (C) 2000 Microsoft Corporation
/****************************************************************************/
/****************************************************************************/
-- SP_TSDISServerNotResponding
--
-- Called by DIS to remove all
-- previous entries related to this server in case of unexpected shutdown.
/****************************************************************************/
CREATE PROCEDURE SP_TSDISServerNotResponding
@ServerAddress nvarchar(63)
AS
-- We need to perform some locking on the tables to make sure
-- of the data integrity. We are assuming default isolation level
-- of Read Committed.
BEGIN TRANSACTION
DELETE FROM TSSD_Sessions WHERE ServerID =
(SELECT MIN(SERV.ServerID) FROM TSSD_Servers SERV
WHERE SERV.ServerAddress = @ServerAddress)
DELETE FROM TSSD_Servers WHERE ServerAddress = @ServerAddress
-- Finished the update.
COMMIT TRANSACTION
GO
/****************************************************************************/
-- SP_TSDISGetServersWithDisconnectedSessions
--
-- Retrieves a list of every server with at least one disconnected session.
/****************************************************************************/
CREATE PROCEDURE SP_TSDISGetServersWithDisconnectedSessions
AS
BEGIN TRANSACTION
SELECT SERV.ServerAddress FROM TSSD_Servers SERV WHERE SERV.ServerID =
(SELECT DISTINCT SESS.ServerID FROM TSSD_Sessions SESS
WHERE SESS.State = 1)
COMMIT TRANSACTION
GO
/****************************************************************************/
-- SP_TSDISGetServersWithPendingReconnects
--
-- Retrieves a list of every server pending a reconnect.
/****************************************************************************/
CREATE PROCEDURE SP_TSDISGetServersPendingReconnects
AS
BEGIN TRANSACTION
SELECT ServerAddress, AlmostInTimeLow, AlmostInTimeHigh FROM TSSD_Servers
WHERE AlmostInTimeLow != 0 AND AlmostInTimeHigh != 0
COMMIT TRANSACTION
GO
/****************************************************************************/
-- SP_TSDISSetServerPingSuccessful
--
-- Resets a server that has been pinged successfully.
/****************************************************************************/
CREATE PROCEDURE SP_TSDISSetServerPingSuccessful
@ServerAddress nvarchar(63)
AS
BEGIN TRANSACTION
UPDATE TSSD_Servers SET AlmostInTimeLow = 0, AlmostInTimeHigh = 0
WHERE ServerAddress = @ServerAddress
COMMIT TRANSACTION
GO