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

댓글을 달아 주세요

Java Memory 이야기

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

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

JMX 에서 standardbean 사용 관련 Tip  (0) 2009.03.28
JMX를 통해서 cpu 정보 구하기  (0) 2009.03.25
Java Memory 이야기  (0) 2009.03.25
svn과 연동 (svnkit)  (0) 2009.03.25
exception시 어떻게 되는가?  (0) 2009.03.05
PermGen에서의 OutOfMemoryError 발생 대처하기  (0) 2009.02.25
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
svn과 연동 (svnkit)  (0) 2009.03.25
exception시 어떻게 되는가?  (0) 2009.03.05
PermGen에서의 OutOfMemoryError 발생 대처하기  (0) 2009.02.25
Generic Erasure  (0) 2009.02.24
Posted by 김용환 '김용환'
TAG Java, SVN, SVNKit

댓글을 달아 주세요

 

아파치 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까지 체크!

 

 

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

Java Profiling API 공부 시작..  (0) 2009.02.20
아파치 세션이 계속 있다??  (0) 2009.02.20
jstack  (0) 2009.02.20
톰캣-이클립스 리모트 디버깅 하기  (0) 2009.02.19
multipool / 웹 미들웨어 조사  (0) 2009.02.06
JVM Tiered Compiler (또는 compilations)  (0) 2009.02.04
Posted by 김용환 '김용환'

댓글을 달아 주세요

jdk 6 버젼을 쓰고 있는데, 이 JIT가 hot spot compiler 가 아닌 tiered compiler 10 버젼이었다..

정확하게 잘 모르던 차에 정리차 레퍼런스를 남겨둔다. 시간만 많으면 정리하면 좋긴 한데.

 

 

http://www.cafeaulait.org/slides/nycjava/java7/40.html

http://www.theserverside.com/tt/knowledgecenter/knowledgecenter.tss?l=MetalMeetsJVM

http://blogs.sun.com/fatcatair/entry/tiered_compilation_issues

http://blogs.sun.com/fatcatair/entry/tiered_compilation_update

http://blogs.sun.com/fatcatair/entry/tiered_compilation_almost_live

http://www.javalobby.org/java/forums/t70546.html

http://blogs.azulsystems.com/cliff/2007/04/nonblocking_has.html

http://forums.java.net/jive/thread.jspa?threadID=33217&tstart=0

 

 

 

 

Posted by 김용환 '김용환'
TAG Java, jvm

댓글을 달아 주세요