Oracle oturumları neden iki hafta Etkin değilken hala hayatta


16

DB: Oracle 10g

O / S: Windows Server 2003 64 bit

Web uygulamaları tarafından oluşturulan Oracle oturumlarının listesini sorgularım (programa göre filtrele = w3wp.exe)

select * from V$session
where UPPER(program) LIKE '%W3%'
order by logon_time

resim açıklamasını buraya girin

Logon_Time'a göre, neden hala 31/07/2012 veya 01/08/2012 oturumları veya bugünden önceki herhangi bir oturum (21/08/2012)?

Sqlnet.ora üzerinde yapılandırdım: SQLNET.EXPIRE_TIME = 20 Yani her 20 dakikada bir Oracle bağlantıların hala etkin olup olmadığını kontrol ediyor.

Tüm kullanıcı şemalarının varsayılan profili vardır. Bu, hiçbir oturumun asla sona ermeyeceği veya ölmeyeceği anlamına gelir mi?

resim açıklamasını buraya girin

Phil'in yorumuna yanıt olarak eklendi:

resim açıklamasını buraya girin

Phil'in cevabına yanıt olarak eklendi:

resim açıklamasını buraya girin


v$session.PREV_EXEC_STARTBu oturumlar için ne var ? Bir bağlantı havuzunun parçası olduklarından şüpheleniyorum ve bu nedenle sık sık kullanılmadıkları için boşta değiller.
Philᵀᴹ

Benimki Oracle 10g, bu yüzden v $ oturumunda PREV_EXEC_START sütunu yok. Ama yine Last_Call_ET sütun dahil sorgu var (sorumu bu resmi ekledim).
Delmonte

Geliştiricilerimizle konuştum ve bana web uygulamalarında ODP.NET kullandıklarını söylediler. Bu oturumların bir bağlantı havuzunda oluşturulduğundan emin olabilirsiniz. Oracle durumu AKTİF DEĞİL gösterdiğinde tamamen güvenmiyorum, ancak bu durumda ... İki hafta önceki oturumları öldürebileceğimi düşünüyor musunuz?
Delmonte

7
Hayır. INACTIVEYalnızca tam olarak kontrol ettiğiniz anda yürütülen bir SQL ifadesi olmadığı anlamına gelir v$session. Bir bağlantı havuzunun parçasıysa, işlerini düzgün bir şekilde yapıyorlar - bağlantı havuzunun tüm noktası, çok sayıda oturum açma / oturum kapatma ihtiyacını ortadan kaldırmak ve hızlı başlatma için kalıcı oturumlar sürdürmektir (tekrar tekrar daha büyük giriş yapma) yalnızca bir sorguyu yürütmek için). Bunun için neden endişelendiğini anlamıyorum.
Philᵀᴹ

@Phil - Bunu cevap olarak mutlu bir şekilde değerlendiririm!
Justin Cave

Yanıtlar:


22

Bir bağlantı havuzunun parçası olduklarından şüpheleniyorum ve bu nedenle sık sık kullanılmadıkları için boşta değiller.

INACTIVEiçinde v$sessionsadece kontrol tam da yürütülmektedir bir SQL deyimi yoktur demektir v$session.

Bir bağlantı havuzunun parçasıysa, uzun süre oturum açarak işlerini düzgün yapıyorlar. Bağlantı havuzunun tüm amacı, çok sayıda oturum açma / oturumu kapatma ihtiyacını ortadan kaldırmak ve hızlı sorgu başlatma için kalıcı oturumlar tutmaktır - bir sorguyu yürütmek için her seferinde bağlantıyı kesmek için çok daha büyük bir genel giriş var.

Her oturum için son etkinlik zamanını almak için:

select username, UPPER(program), logon_time, 
       floor(last_call_et / 60) "Minutes since active", status
from v$session
where UPPER(program) LIKE '%W3%'
order by last_call_et;

Bunu yapmanın uygulama tarafında sorun yaratmayacağını bilmediğiniz sürece, oturumları öldürmeye karşı öneriyorum (örneğin, öldürülen bir oturumu kullanmaya çalışmak).

Uygulama başlatıldığında yüzlerce bağlantı oluşturan yanlış yapılandırılmış bir bağlantı havuzuna bakmanız gerekebilir - bağlantı havuzu, olması gerekenden daha büyük bir büyüklük sırası olabilir. Geliştiricilere / uygulama destek personeline ulaşmanızı ve bağlantı havuzunun nasıl yapılandırıldığına bir göz atmanızı öneririm.

Biraz araştırma yaptıktan sonra, w3wp.exe IIS Uygulama Havuzu Süreci'dir - bağlantı havuzu yapılandırmasının en altına inmenize yardımcı olmak için neredeyse kesinlikle IIS web sunucusu yöneticilerinizle konuşmak istersiniz.


Açıklamanız için teşekkür ederiz, ancak bu odp.net oturumlarının değerleri giderek artıyorsa ne olacak? Ben v $ resource_limit sorgu (orijinal sorum ekledi) ve süreç ve oturum değerleri değer sınırının% 80 ulaştığını gösterir. Bu odp.net oturumları oturum değerlerimi tüketiyor, 701 limit değerine ulaşıyor ve veritabanı bağlantımı bırakıyor olabilir mi? (Bu sınır değerlerini 1000 veya 2000'e uzatabileceğimi biliyorum, ancak sorunun bir parçası değil)
Ağustos'ta Delmonte

Sonra bir uygulama sorununuz var.
Philᵀᴹ

Neden? Web uygulamaları odp.net bağlantısını açıyor, kapatıyor ve atabiliyor ... Anladığım kadarıyla, odp.net oturumları hala web uygulamaları onları kullansa bile gelecekteki bağlantıları beklemektedir.
Delmonte

Bir bağlantı havuzu yapılandırma sorunu olacak gibi görünüyor. Zaman içinde v $ oturumu sayısı (*) çizdiniz mi? DB için bir tanılama paketi lisansınız var mı?
Philᵀᴹ

3
ISS (Uluslararası Uzay İstasyonu) yerine IIS (Microsoft'un HTTP / uygulama sunucusu) demek istediğinizi varsayıyorum :-)
Justin Cave
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.