Programming/Java

3

Quartz의 misfired trigger 처리 정책

특정 데몬 hang을 분석하면서 Quartz를 의심하여 추적하다보니 (미안하다 쿼츠야, 내가 널 의심했구나아. ^^;) 평소 궁금했던 내용을 만나게 되어 저처럼 궁금한 사람이 있을 듯 하여 정리합니다. Q. 스케쥴러가 제때 실행이 안되면 어떻게 되나요?데몬이 멈추는 이슈가 Quartz의 스케쥴러가 밀리면서 해당 작업에 대한 일이 밀려서가 아닐까 의심하다. A.그건 오해야~ ^^스케쥴링을 하다보면 시간내 작업이 끝나지 않을 경우, 다음 스케쥴을 실행 할 수 없습니다.이처럼 다음 스케쥴이 실행되지 않을 경우를 misfired trigger 라고 하는데, 이러한 misfired trigger만을 위한 별도 정책을 설정하여 처리할 수 있습니다. misfired로 인식하는 시간은 설정이 가능하며 (misfired..

Programming/Java 2014.05.19 Joshua95

JVM 메모리 설정

* JVM 메모리 설정 Java 데몬을 구동하다 보면 JVM 메모리를 직접 설정해 주어야 할 때가 많습니다.특히 공포의 OOM(Out Of Memeory)를 만나고 나면 이 설정을 피할수가 없습니다. 다음은 Java 구동시 대표적인 메모리 설정 argument 입니다. -Xmx256M : 최대 Heap 크기-Xms128M : 초기 구동시 Heap 크기-Xss128K : 스레드에 할당할 스택 크기-XX:MaxPermSize : 최대 Perm 크기-XX:PermSize: 초기 Perm 크기 - From Joshua(2014.04.21)

Programming/Java 2014.04.21 Joshua95

Java VisualVM을 이용해서 Remote 장비 리소스 모니터링하기

* Java VisualVM을 이용해서 Remote 장비 리소스 모니터링하기 Java로 서버를 구동하다 보면, 자바의 속이 궁금할 때가 참 많습니다.도대체 메모리를 어느 스레드가 얼마나 쓰고 있는 것인지, 어떤 스레드가 도대체 CPU를 그렇게 잡아 먹고 있는 것인지, 디스크 사용량은 얼마나 되는 것인지 등등 속을 알 수 없어서 답답합니다. 이러한 답답함을 해결할 수 있는 쉬운 방법 중에 하나가 VisualVM이라는 툴을 이용해서 서버의 내부를 들여야 보는 것지요.CPU와 메모리, 디스크는 물론이고 각 스레드별 사용 메모리까지도 파악할 수 있어서 유용하게 디버깅이나 모니터링이 가능합니다. Java VisualVM을 사용하기 위해서는 기본적으로 다음 작업을 수행해 주어야 합니다. 1) 서버의 catalina..

Programming/Java 2014.04.18 Joshua95