Aylık Arşiv: Aralık 2012

JBoss – OutOfMemoryError Problemi Çözümü

JBoss’u başlattığınızda java.lang.OutOfMemoryError diye bir hata verebilir.

Bu hata, JBoss’a RAM’in yetmediği anlamına gelir. RAM kullanım sınırını arttırmak için run.conf’unuzda bulunan JAVA_OPTS değişkenine -XX:MaxPermSize parametresini eklemeniz işinizi görecektir.

Örnek bir kullanım:-XX:MaxPermSize=1024m

Ek bilgi: JBoss 4.2’de öntanımlı değer 64 MB’dır

 
2 Kudos
Don't move

PHP – Uyarı ve Bilgi Bildirimleri Exception Fırlatsın

PHP’de Uyarı (Warning), Bilgi (Notice) bildirimlerini handle ederken catching yapamamanın eksikliğini yaşamış olabilirsiniz büyük bir ihtimal ile.
set_error_handler ile ister Exception fırlatarak ister fırlatmayarak bu bildirimleri handle edebilirsiniz.

set_error_handler ile Warning ve Notice uyarıları için ayrı ayrı işlemler yapabilirsiniz.

Örneğin:

function hatalar($seviye, $mesaj, $dosya, $satir, $detay){
    echo $seviye . "\n";
    echo $mesaj . "\n";
    echo $dosya . "\n";
    echo $satir . "\n";
    print_r ($detay);
}

set_error_handler('hatalar');

echo $a;
file_get_contents('a');

Bir notice bir warning verecek şekilde hatalı yazım yaptım. Böylece handle işlemini yapmış olduk.

Peki nasıl catching yapabiliriz?

class NotException extends Exception {}//NoticeException
class WarException extends Exception {}//WarningException

function hatalar($seviye, $mesaj, $dosya, $satir, $detay){

    if ($seviye == 8)
        throw new NotException("Notice!!!");
    else if ($seviye == 2)
        throw new WarException("Warning!!!");
}

set_error_handler('hatalar');

try {
    echo $a;
} catch (NotException $e) {
    echo $e->getMessage();
}

try {
    file_get_contents('a');
} catch (WarException $e) {
    echo $e->getMessage();
}

Gördüğünüz gibi artık Try-Catch içinde de işlem yapabiliyoruz.

 
25 Kudos
Don't move