Forum
Merhabalar,
Veritabanı oracle olan x bir hastane otomasyonu kullanıyoruz. Management olarak da toad for oracle kullanıyoruz. Oracle'a hbys üzerinden login olan kullanıcıların (sessions) belli bir süre(örneğin 15 dk) işlem yapmadığı takdirde sistemden otomatik logout/disconnect olmasını istiyorum. Bunu Toad'dan bir schedul'a bağlamak mümkün mü ?
Selamlar;
Profil, sqlnet.ora vb. yollarla tanımlamak mümkün ancak neden bu istek oldu anlamadım. Her zaman iyi sonuçlar veremeyebilir. Bunu otomasyon tarafı ile görüşerek yapmanız daha anlamlı olacaktır. Çünkü veri girişi tamamlanmadan kesintiler olabilir. Nedeni session yetmiyor ise process ve session sayısını arttırarak bu konuyu çözebilirsiniz.
İlla yapacağım diyorsanızda aşağıdaki adımlarla yapabilirsiniz. Söylediğim gibi Toad vb. üzerinden yapmak yerine otomasyon seviyesinde bunu yaptırmanız daha doğru olacaktır.
altersystem set resource_limit=true scope=both;
alter profile senior_claim_analyst limit
connect_time 45
sessions_per_user 2
ldle_time 15;
Teşekkürler.
Selamlar;
Profil, sqlnet.ora vb. yollarla tanımlamak mümkün ancak neden bu istek oldu anlamadım. Her zaman iyi sonuçlar veremeyebilir. Bunu otomasyon tarafı ile görüşerek yapmanız daha anlamlı olacaktır. Çünkü veri girişi tamamlanmadan kesintiler olabilir. Nedeni session yetmiyor ise process ve session sayısını arttırarak bu konuyu çözebilirsiniz.
İlla yapacağım diyorsanızda aşağıdaki adımlarla yapabilirsiniz. Söylediğim gibi Toad vb. üzerinden yapmak yerine otomasyon seviyesinde bunu yaptırmanız daha doğru olacaktır.
altersystem set resource_limit=true scope=both;
alter profile senior_claim_analyst limit
connect_time 45
sessions_per_user 2
ldle_time 15;
Teşekkürler.
- Nedeni session yetmiyor ise process ve session sayısını arttırarak bu konuyu çözebilirsiniz.
- Hocam malesef otomasyon lisans sayımız az ve lisans maliyeti oldukça yüksek. Veri girişi ile ilgili tüm riskleri aldım o konuda sıkıntı yok.
İlgili scripti toad üzerinde nasıl task yapabilirim. Ya da o scripti sqlnet.ora dosyasının içine mi yazmayalım. Biraz daha detay verirseniz sevinirim.
Selamlar;
Bunun için scripte gerek yok. Verdiklerimi çalıştırman sonucunda 15 dk idle olan sessionları kapatacaktır. Lütfen bunun onayını otomasyon tarafından alınız. Aksi takdirde beklenmeyen sonuçlar ortaya çıkabilir.
Teşekkürler
Selamlar;
Bunun için scripte gerek yok. Verdiklerimi çalıştırman sonucunda 15 dk idle olan sessionları kapatacaktır. Lütfen bunun onayını otomasyon tarafından alınız. Aksi takdirde beklenmeyen sonuçlar ortaya çıkabilir.
Teşekkürler
Çok sağol hocam deneyeceğim. Son birşey sormak istiyorum.
Kullanıcılar oracle'a iki farklı exe üzerinden login oluyorlar. xxxx.exe ve yyyyy.exe gibi. Ben sadece xxxx.exe den login olmuş kullanıcıları disconnect etmek istesem scriptte nasıl bir değişiklik yapmam gerekecek ya da böyle bir şey mümkün mü ?
Selamlar;
Verdiğim komut düzeni ile bu mümkün değil. Ayıramazsın. Bu ayar genel olarak tüm user sessionlar için geçelidir.
Teşekkürler.
Selamlar,
Koray hocama ek olarak sorgu bazında şöyle birşey olabilir, aklımdan yazdığım için umarım eksik yoktur.
SELECT STATUS,S.SID,S.SERIAL#,S.PROGRAM ,SECONDS_IN_WAIT ,'ALTER SYSTEM KILL SESSION '''||S.SID||','||S.SERIAL#||''' IMMEDIATE;'
FROM v$session S WHERE username IS NOT NULL AND SECONDS_IN_WAIT>=900 AND STATUS='INACTIVE' AND PROGRAM='HASTANE.EXE'
bunun çıktığısı 15 dakika ve üzeri olan inactive kullanıcıları verir. Daha sonrada kill edilir fakat bilmediğiniz bir husussa bence hiç bulaşmayın.
Oracle ACE Associate - Türkiye Hayat & Emeklilik
****************************************************************
Probleminiz Çözüldüğünde Sonucu Burada Paylaşırsanız.
Sizde Aynı Problemi Yaşayanlar İçin Yardım Etmiş Olursunuz.
Eğer sorununuz çözüldü ise lütfen "çözüldü" olarak işaretlerseniz diğer üyeler için çok büyük kolaylık sağlayacaktır.
*****************************************************************
İlginiz için teşekkürler üstadlar. Peki ben bu scripti çalıştırdıktan bir süre sonra disable etmek istesem ne yapmalıyım. ?
Selamlar,
Koray hocama ek olarak sorgu bazında şöyle birşey olabilir, aklımdan yazdığım için umarım eksik yoktur.
SELECT STATUS,S.SID,S.SERIAL#,S.PROGRAM ,SECONDS_IN_WAIT ,'ALTER SYSTEM KILL SESSION '''||S.SID||','||S.SERIAL#||''' IMMEDIATE;'
FROM v$session S WHERE username IS NOT NULL AND SECONDS_IN_WAIT>=900 AND STATUS='INACTIVE' AND PROGRAM='HASTANE.EXE'
bunun çıktığısı 15 dakika ve üzeri olan inactive kullanıcıları verir. Daha sonrada kill edilir fakat bilmediğiniz bir husussa bence hiç bulaşmayın.
Hocam denedim fakat olmadı. Ayrıca bu sorgu sadece select değil mi kill işlemini nasıl yapacak anlayamadım. Bir de HBYS üzerinden login olan tüm kullanıcılar status = INACTIVE olarak görünüyor.(HBYS üzerinde select insert update işlemleri olmasına rağmen) Burada bir çelişki var sanki 😉
Koray hocam'ın verdiği scripti daha denemedim exe ayrımı yapmam şart.
Selamlar,
PL/SQL konusuna yabancısınız sanırım. Bu sorgu otomatik kill etmez fakat önce çıktıyı alıp sonra sizin kill etmeniz için son sütuna yazmanız gereken sorguyu verir. Script olmadan .exe ayrımı yapamazsınız.
SELECT STATUS,S.SID,S.SERIAL#,S.PROGRAM ,SECONDS_IN_WAIT ,'ALTER SYSTEM KILL SESSION '''||S.SID||','||S.SERIAL#||''' IMMEDIATE;'
FROM v$session S WHERE username IS NOT NULL AND SECONDS_IN_WAIT>=900 AND STATUS='INACTIVE' AND PROGRAM='HASTANE.EXE'
Oracle ACE Associate - Türkiye Hayat & Emeklilik
****************************************************************
Probleminiz Çözüldüğünde Sonucu Burada Paylaşırsanız.
Sizde Aynı Problemi Yaşayanlar İçin Yardım Etmiş Olursunuz.
Eğer sorununuz çözüldü ise lütfen "çözüldü" olarak işaretlerseniz diğer üyeler için çok büyük kolaylık sağlayacaktır.
*****************************************************************
Selamlar,
PL/SQL konusuna yabancısınız sanırım. Bu sorgu otomatik kill etmez fakat önce çıktıyı alıp sonra sizin kill etmeniz için son sütuna yazmanız gereken sorguyu verir. Script olmadan .exe ayrımı yapamazsınız.
SELECT STATUS,S.SID,S.SERIAL#,S.PROGRAM ,SECONDS_IN_WAIT ,'ALTER SYSTEM KILL SESSION '''||S.SID||','||S.SERIAL#||''' IMMEDIATE;'
FROM v$session S WHERE username IS NOT NULL AND SECONDS_IN_WAIT>=900 AND STATUS='INACTIVE' AND PROGRAM='HASTANE.EXE'
Hocam amaç oto kill etmek. Zaten diğer türlü manuel olarak toaddan kill edebiliyorum. Koray Hoca'nın verdiği script de exe ayrımı yapamaz mıyız peki ?
Selamlar,
Koray hoca parametre vermiş bu dediğiniz yapılamaz fakat gönderdiğim sql sorgusunu otomatize edebilir siniz.
Oracle ACE Associate - Türkiye Hayat & Emeklilik
****************************************************************
Probleminiz Çözüldüğünde Sonucu Burada Paylaşırsanız.
Sizde Aynı Problemi Yaşayanlar İçin Yardım Etmiş Olursunuz.
Eğer sorununuz çözüldü ise lütfen "çözüldü" olarak işaretlerseniz diğer üyeler için çok büyük kolaylık sağlayacaktır.
*****************************************************************
Nucleus kullanıyorsan monad ile görüşmelisin yoksa sıkıntı olur 🙂