Standard mbean을 만들기 위해서는 inteface로 먼저 MBean을 만들고, 그 구현체에서 interface를 상속하고 구현을 하도록 가이드가 되어 있다.

'java core' 카테고리의 다른 글

addShutdownHook() of Runtime class  (0) 2009.04.17
JDK7에 clossloader의 close 메소드가 생기다니.  (0) 2009.04.09
JMX를 통해서 cpu 정보 구하기  (0) 2009.03.25
Java Memory 이야기  (0) 2009.03.25
svn과 연동 (svnkit)  (0) 2009.03.25
Posted by '김용환'
,

Java Memory 이야기

java core 2009. 3. 25. 20:45
자바 인스턴스의 메모리를 측정하는 방법은 여러가지 인데, 그중에 Runtime과 JMX를 알아본다.

Posted by '김용환'
,

svn과 연동 (svnkit)

java core 2009. 3. 25. 04:04

'java core' 카테고리의 다른 글

JMX를 통해서 cpu 정보 구하기  (0) 2009.03.25
Java Memory 이야기  (0) 2009.03.25
exception시 어떻게 되는가?  (0) 2009.03.05
PermGen에서의 OutOfMemoryError 발생 대처하기  (0) 2009.02.25
Generic Erasure  (0) 2009.02.24
Posted by '김용환'
,

 

아파치 commons의 org.apache.commons.lang.builder.ToStringBuilder 클래스는 이런 일을 위해서 만들어졌다.

 

toString을 구현할려면, 그냥 StringBuffer나 StringBuilder쓰는 삽질이 있었는데. 얘는 쓰면 참 편하다.

이젠 toString 삽질은 그만..

 

1) 그냥 쓰는 경우.

 @Override
 public String toString() {
  return ToStringBuilder.reflectionToString(this);
 }

 

 @Override
 public String toString() {
  return ToStringBuilder.reflectionToString(this, ToStringStyle.DEFAULT_STYLE);
 }

 

2) 여러줄로 나눠서 Properties를 보여주는 것 (내가 주로 사용)

 @Override
 public String toString() {
  return ToStringBuilder.reflectionToString(this, ToStringStyle.MULTI_LINE_STYLE);
 }

 

2) 한줄로 나눠서 Properties를 보여주되 클래스와 클래스의 hash값은 보여주지 않는다.

 @Override
 public String toString() {
  return ToStringBuilder.reflectionToString(this, ToStringStyle.SIMPLE_STYLE);
 }

 

Posted by '김용환'
,

jstack

java core 2009. 2. 20. 23:19

쓰레드 덤프 하기

 

이 툴은 아주 효과 만점이다.

kill -3 자바프로세스번호 하면서 고생하던 것을 쉽게 해결해준다.

 

치면 이렇게 나온다.

 

Usage:
    jstack [-l] <pid>
        (to connect to running process)
    jstack -F [-m] [-l] <pid>
        (to connect to a hung process)
    jstack [-m] [-l] <executable> <core>
        (to connect to a core file)
    jstack [-m] [-l] [server_id@]<remote server IP or hostname>
        (to connect to a remote debug server)

Options:
    -F  to force a thread dump. Use when jstack <pid> does not respond (process is hung)
    -m  to print both java and native frames (mixed mode)
    -l  long listing. Prints additional information about locks
    -h or -help to print this help message

 

강제로, native영역과 함께, 특히 deadlock 여부까지!! 오호! 굿

 

테스트 해보자. 물론 리눅스 환경에서. (윈도우도 되겠지만)

/usr/local/jdk6/bin/jps v             // ps -ef | grep java와 같다.

 /usr/local/jdk6/bin/jstack 21720 > td.txt    // java 프로세스 넘버주면, 파일로 덤프가 가능하다.

 

/usr/local/jdk6/bin/jstack -l 21720 > td.txt   // 이렇게 하면,  deadlock까지 체크!

 

 

Posted by '김용환'
,
Posted by '김용환'
,