DYS'de toplu evrak indirme yaparken sistem 50. evraktan sonra 'Session Timeout' verip atıyor, DYS'nin oturum süresini uzatmanın veya parçalı indirmenin yolu nedir?
2 Cevap
Merhaba, Doküman Yönetim Sistemi'nde (DYS) toplu evrak indirme işlemi yaparken yaklaşık 50. evrakta karşılaşılan 'Session Timeout' (Oturum Zaman Aşımı) hatası ve uygulamanın aniden kapanması, adliye yazı işleri müdürlükleri, zabıt katipleri ve birim devir teslimi yapan personelin en sık yaşadığı teknik darboğazlardan biridir. Bu problemin temelinde hem istemci tarafındaki Java Sanal Makinesi (JVM) bellek yönetimi hem de Adalet Bakanlığı merkezi WebLogic / DYS uygulama sunucularının oturum denetim protokolleri yer almaktadır.
Sorunun Kök Nedenleri ve Teknik Anatomisi:
- UI Thread ve Soket Bloklanması: DYS istemcisi toplu evrak indirme talebi başlattığında, her bir dosya için sunucudaki doküman ambarına (Documentum / Alfresco altyapısı) ayrı bir HTTP GET / akış (stream) isteği gönderir. İndirme işlemi Java Swing arayüz iş parçacığını (UI thread) bloke ettiğinde, istemcinin sunucuya belirli aralıklarla gönderdiği arka plan 'Keep-Alive' (oturum canlı tutma kalp atışı) paketleri gecikir. Sunucu tarafındaki F5 yük dengeleyici (load balancer) veya ters vekil (reverse proxy) belirli bir süre sinyal alamayınca TCP bağlantısını keserek oturumu sonlandırır.
- Java Heap Bellek Yetersizliği ve Çöp Toplayıcı Duraklamaları (GC Pauses): İndirilen taranmış ve yüksek boyutlu PDF evrakları bellekte tamponlanır (buffer). Varsayılan 256 MB veya 512 MB maksimum heap bellek sınırı (
-Xmx) aşıldığında Java sanal makinesi 'Stop-The-World' modunda çöp toplayıcı (Garbage Collector) çalıştırır. Bellek temizleme döngüsü sırasında sistem donar, sunucuyla iletişim tamamen kopar ve oturum zaman aşımına düşer. - Ağ ve Proxy Zaman Aşımı Eşikleri: Adalet Bakanlığı kurumsal ağ omurgasında istemci başına tanımlanan aktif veri transferi oturum süresi güvenlik protokolleri gereği sınırlandırılmıştır.
Sorunu Gidermenin 3 Adımlı Kesin Çözüm Protokolü:
1. Java Çalışma Zamanı Belleğini ve Ağ Zaman Aşımını Artırın
- Windows Arama kutusuna
Configure Javayazıp Java Control Panel'i açın. - Üstteki Java sekmesine gelerek View (Görüntüle) butonuna tıklayın.
- Kullanılan Java sürümünün karşısındaki Runtime Parameters (Çalışma Zamanı Parametreleri) alanına çift tıklayın ve şu parametreleri eksiksiz ekleyin:
-Xms512m -Xmx2048m -Dsun.net.client.defaultConnectTimeout=180000 -Dsun.net.client.defaultReadTimeout=300000 -Dsun.net.http.errorstream.enableBuffering=true - Bu parametreler DYS'ye 2 GB çalışma belleği tahsis eder, soket bekleme süresini 5 dakikaya çıkarır ve büyük dosya akışlarında bellek kilitlenmesini engeller. Apply ve OK diyerek kaydedin.
2. Parçalı ve Filtreli İndirme Metodunu Uygulayın (Altın Kural)
DYS oturumunun düşmesini engellemenin operasyonel kuralı, evrak listesini tek seferde indirmemek, 30-40 evraklık kontrollü partilere bölmektir:
- DYS Evrak Arama veya Birim Evrak Listesi ekranında tüm arşivi tek seferde listelemek yerine, Tarih Aralığı Filtresi kullanarak veriyi aylık veya 3'er aylık periyotlara ayırın.
- Alternatif olarak Evrak Türü filtresini kullanarak; önce sadece 'Tensip Zaptı', ardından 'Gerekçeli Karar', daha sonra 'Müzekkere' evraklarını ayrı paketler halinde indirin.
- İndirme sırasında farenizi veya klavyenizi sistemde hareket ettirerek DYS arayüzünün işletim sistemi gözünde 'Yanıt Vermiyor' moduna geçmesini engelleyin.
3. DYS Önbelleğini ve Geçici JNLP Dosyalarını Temizleyin
- Klavyeden
Windows + Rtuşlarına basıpcmdyazarak komut satırını açın. - Komut satırına
javaws -clearcacheyazıp Enter'a basın; böylece eski JNLP önbelleği temizlenir. - Ayrıca
C:\Users\KullaniciAdiniz\.dysveLocal\Tempaltındaki geçici tampon dosyaları silin.
Bu bellek yapılandırması ve parçalı indirme disiplini uygulandığında, oturum düşmesi sorunu tamamen ortadan kalkacak ve tüm evraklar sıfır bayt hatası olmadan eksiksiz indirilecektir.
Önemli bir ek teknik bilgi: DYS'de evrak indirirken hedef klasör olarak ağ paylaşımlı ortak sürücüleri veya yavaş USB bellekleri seçmeyiniz. Yazma hızı düşük sürücüler Java I/O akışını bekleterek soket zaman aşımına sebep olur. İndirme konumunu mutlaka yerel bilgisayarınızın yerel SSD sürücüsünde (örneğin C:\DYS_Evraklar) açacağınız bir klasör olarak belirleyiniz.