13 Şubat 2016 Cumartesi

DSpace Web Ara Yüzü Kendiliğinden Kapanıyor

DSpace web ara yüzü zaman zaman yanıt vermiyorsa bunun bir kaç nedeni olabilir. Ana neden düşük bellek (memory) ve temizlenmeyen günlük kayıtlarıdır (log).  Ayrıca zaman zaman robot diye tabir edilen web botların yoğun bir şekilde indeksleme girişimleri nedeniyle aşırı yükten dolayı sistem, askıda kalıp yanıt veremez hale gelebilir.

Yapılması gereken;
 1) Sisteme yeterli bellek ve işlemci tanımlamak,
 2) Günlüklari (log) düzenli olarak temizlemek için cron'a uygun komutlar işlemek veya Günlük (log) üretimini kapatmak (bkz. Tomcat Erişim Günlüklerini (Log) İptal Etmek ve Tomcat 7'de catalina.out Günlüklerini (Log) İptal Etmek.

Bir diğer önemli husus DSpace web sayfasını belli aralıklarla otomatik olarak kontrol eden ve bir sıkıntı varsa servisi yeniden başlatan basit bir komutu cron'a eklemektir. Bunun için yapılması gereken:

 - root yetkisiyle sisteme giriniz.
 - apt-get install httpie  komutuyla httpie yazılımını kurunuz.
 - bu komutla kurulum gerçekleşmiyorsa httpie kurulumu için buraya tıklayınız.
 - crontab -e  komutuyla cron dosyasını açınız ve aşağıdaki komut satırındaki adresi kurumsal arşivinizin adresiyle değiştirin ve cron dosyanıza ekleyiniz.

*/20 * * * * http -h "http://openaccess.dogus.edu.tr:8080/xmlui/" | grep "200 OK" || echo "Site cevap vermiyor" | /etc/init.d/tomcat7 restart

Bu komut her 20 dakikada bir DSpace web arayüzünü kontrol edecek ve 30 saniyede yanıt alamaz ise servisi yeniden başlatacaktır.

Tomcat Erişim Günlüklerini (Log) İptal Etmek

Bazen, ihtiyaçlarımıza bağlı olarak Tomcat'in loglarını kapatmak veya açmak isteyebiliriz. Bu düzenleme /tomcat7/conf/server.xml dosyasında basit bir değişiklikle yapılabilir.

Bunun için server.xml dosyasını açınız ve dosyanın sonundaki aşağıdaki kodlamayı bulunuz.

<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" 
    prefix="localhost_access_log." suffix=".txt"
    pattern="%h %l %u %t &quot;%r&quot; %s %b" resolveHosts="false"/>

Yukarıdaki kodlamanın başına ve sonuna aşağıdaki etiketleri ekleyiniz ve kaydedip çıkınız.

<!--
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" 
    prefix="localhost_access_log." suffix=".txt"
    pattern="%h %l %u %t &quot;%r&quot; %s %b" resolveHosts="false"/>
-->

/etc/init.d/tomcat7 restart komutuyla Tomcat'i yeniden başlatınız.

Logları yeniden etkinleştirmek istediğiniz zaman bu etiketleri kaldırıp Tomcat'i yeniden başlatmanız yeterlidir.

Tomcat 7'de catalina.out Günlüklerini (Log) İptal Etmek

Tomcat 7 varsayılan ayarlarında ürettiği logları catalina.out ve ayrıca günlük logları da catalina.yyyy-mm-dd.log dosyasına yazar.  Günlük loglar hergün yeni bir dosyaya yazdırılır, fakat catalina.out disk dolana kadar büyümeye devam eder. Olumsuzluklara sebep vermemesi için catalina.out dosyasının elinde tuttuğu disk alanını düzenli olarak boşaltmak gerekir. Bunun için;
 1) Tomcat'i yeniden başlatmak veya
 2) crontab içine aşağıdaki gibi bir komut satırı eklemektir:
 */30 * * * * cat /dev/null > /usr/locale/tomcat7/catalina.out
 (Bu komut her 30 dakikada bir catalina.out dosyasının içeriğini temizleme görevini yerine getirir.)

Tomcat'in catalina.out dosyasına log yazmamasını tamamen önlemek için ise log işleyiciyi iptal etmek gerekir. Bunu için:

/usr/locale/tomcat7/conf/logging.properties dosyasında aşağıdaki düznlemeyi yapmak gerekir:

.handlers = 1catalina.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler

yerine

.handlers = 1catalina.org.apache.juli.FileHandler

İptal düznlemesi yerine catalina.out dosyasının düzenli aralıklarla içeriğinin temizlenmesi daha doğru bir uygulamadır.