82 lines
2.7 KiB
Transact-SQL
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
|