PDA

View Full Version : سوال: kill كردن كانكشن



salimim
پنج شنبه 07 آذر 1387, 15:41 عصر
مي خوام تمام ارتباطهاي بيش از 2 ساعت با سرور رو كه به ديتا بيس مشخصي وصل شدن رو kill كنم
در حقيقت kill كردن يه select به چه شكله؟
از cursor به چه صورت بايد استفاده كنم؟

salimim
پنج شنبه 07 آذر 1387, 16:51 عصر
به اين شكل kill نمي شه!


DECLARE killp CURSOR FOR
SELECT MASTER.DBO.sysprocesses.spid
FROM MASTER.DBO.sysprocesses INNER JOIN
Auto.GNR.Sessions ON MASTER.DBO.sysprocesses.spid = Auto.GNR.Sessions.Spid
WHERE (Auto.GNR.Sessions.OutDate IS NULL) AND (GETDATE() - Auto.GNR.Sessions.InDate > 0.3)
ORDER BY Auto.GNR.Sessions.InDate DESC
for update


OPEN KILLP
declare @spida int
FETCH NEXT FROM KILLP INTO @SPIDA
WHILE @@FETCH_STATUS=0
BEGIN
KILL @SPIDA
UPDATE Auto.GNR.Sessions
SET OUTDATE=GETDATE()
WHERE (Auto.GNR.Sessions.OutDate IS NULL) AND (GETDATE() - Auto.GNR.Sessions.InDate > 0.3)
FETCH NEXT FROM KILLP INTO @SPIDA
END
CLOSE KILLP
DEALLOCATE KILLP

AminSobati
جمعه 08 آذر 1387, 01:14 صبح
سلام دوست عزیزم،
در کدوم نسخه کار میکنید؟

salimim
شنبه 09 آذر 1387, 13:18 عصر
سلا م استاد
همچنان از نسخه 2000 :ناراحت:
البته عدم آپديت به دليل نرم افزارمونه!

AminSobati
شنبه 09 آذر 1387, 17:55 عصر
مشکلی نیست مهرداد جان،
در همون جدول master..sysprocesses از فیلد login_time مگه نمیتونین استفاده کنین؟

salimim
یک شنبه 10 آذر 1387, 07:15 صبح
ممنون استاد
ولي مشكل من در مورد kill كردن يك سري connection هست كه SPID شونو ميدونم(يعني ميتونم با يه select استخراج كنم)
در حقيقت login به يه software برام مهمه كه توي table مربوط به خود آن نرم افزار ذكر مي شه.
در نهايت استاد اگه ممكنه براي اينكار (kill كردن يكسري connection با spid يي كه از يه select استخراج مي شه) يه نمونه برام بذاريد.
بازم ممنونم

AminSobati
یک شنبه 10 آذر 1387, 13:18 عصر
من چیزی مشابه کد خودتون در نظرم هست که پست کردین. این کد اشکالش چیه؟ پیغام خطا دریافت میکنید؟

salimim
یک شنبه 10 آذر 1387, 13:43 عصر
فكر مي كنم مشكل سر KILL هستش!
نبايد يه رشته داشته باشم بعدش execute كنم؟
يه چيزي مثل اين:


exec 'kill '+cast(@p,varchar(20))

مثلا اگه متغيرمون p@ باشه......
* هيچ پيغام خطايي نمي ده اما كانكشن ها هم kill نمي شن
:(