WAS에 jar 파일과 class 파일들을 만들어 올려서 사용하다 보면, 개발할 땐 잘 돌아갔는데 서버에서 에러가 나는 경우가 많다.

클래스로더의 상하구조 때문일 경우도 있고, 동일한 패키지의 동일한 클래스가 여러 버전으로 중복되어 올라가 있어 발생하는 경우도 있다.

그래서, jar 파일과 class 파일이 있는 디렉토리만 입력해 주면 포함된 모든 클래스 파일을 뒤져서 중복여부를 체크해 주는 프로그램을 만들어 보았다.

 

사용법 :

1. 첨부된 zip 파일의 압축을 푼다.

2. lib.properties에 WAS 동작시 로딩되는 jar 파일 디렉토리(lib)와 class 파일 디렉토리(classes)를 모두 입력한다.

   jar를 포함한 디렉토리는 jar로 시작해서 일련번호를 붙이고, class파일을 포함한 디렉토리는 class로 시작해서 일련번호를 붙인다.

   단, 절대경로로 입력하며 경로구분자는 반드시 "/"로 해야 한다. "\"일 경우는 바꿔 주어야 한다.(이건 귀차니즘 때문에.. ^^;)

3. runChecker.bat를 실행한다.

4. 생성되는 result.txt 파일을 열어 중복 클래스와 클래스들의 파일크기, 생성일자를 비교해 어떤 걸 빼야 할지 결정한다.

 

아무쪼록 많은 도움이 되길...

 

추가>

기존에 올렸던 프로그램이 JDK1.5에서만 돌아가기 때문에

추가로 JDK1.4를 사용하는 분들을 위한 프로그램을 첨부합니다.

 

'Java_Web' 카테고리의 다른 글

웹개발을 위한 Power Tool - Firefox + Firebug  (0) 2007.08.04
프린트 관련 CSS 속성  (0) 2007.06.14
JVM Monitoring  (0) 2007.04.14
Query Generator  (1) 2007.01.30
Unix에 CVS 서버 설치 & 이클립스 연결  (0) 2007.01.06
AND

JVM Monitoring

Java_Web 2007. 4. 14. 00:44

J2SE 5.0부터 JVM 상태를 모니터링할 수 있는 기능이 제공된다.

대강 보면 JMX 방식으로 처리되는 것 같고, 메모리를 비롯해 쓰레드, 클래스 로딩까지 볼 수 있어 문제를 찾아내야 할 경우에 꽤 유용하게 사용될 수 있을 것 같다.

WebLogic 같은 경우 8.1에선 콘솔에서 Heap Memory 모니터링 기능이 있어서 사용했는데, 9.0에서는 없어진 것인지 찾을 수가 없었다.

있다 하더라도 지금부터 설명하는 걸로 하면 더 많은 정보를 세세히 살필 수 있으니 신경 안 쓰려고 한다. ㅋㅋ

 

1. JVM에 자바 옵션 추가

-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port={포트번호}
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false

☞ 여기서 {port번호}는 외부에서 이 WAS에 접속하기 위한 포트로 보이고, netstat으로 쳐 봐서 사용하지 않는 포트번호를 골라서 사용하면 될듯하다. 대강 10000~15000번에서 고르면 되겠고, 참고로 나는 12000번을 사용했다.

 

이 옵션을 적용시키려면 이클립스 같은 데서 디버그모드로 WAS를 띄운다면 Server정보의 start탭에 VM Arguments 부분에 붙여 넣으면 되고, 스크립트 방식으로 구동한다면 한 줄로 몰아서 %JAVA_OPTION 변수에 추가시켜 주면 되겠다.

set JAVA_OPTS=%JAVA_OPTS% -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=12000 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false

-> 위는 jBoss에서 사용한 예

 

2. 1.에서 적용한 옵션을 적용한 WAS 기동

 

3. {JDK_Home_Directory}/bin/jconsole.exe를 실행

사용자 삽입 이미지

나는 WAS를 로컬에서 띄워서 그런지 Local탭에 자동으로 인식이 되었고 Connect 버튼을 클릭하면 바로 연결된다.

Remote 탭이 있는 걸 보니 원격의 WAS에도 연결이 가능한 것으로 보이나 테스트를 못 해 봤으니 일단 패스~(나중에 해 보고 추가하겠음)

 

4. 연결 후 JVM 정보 모니터링

사용자 삽입 이미지

일단 전체적인 내용을 간추려서 보여 준다.

 

사용자 삽입 이미지

Heap, Non-Heap 별로 모니터링이 가능하고, 오른쪽 아래의 이미지를 클릭하면 그 중에서도 eden, survivors, perm 등등의 영역별로 모니터링을 할 수 있다. Perform GC를 클릭하면 GC도 한 번 시켜 볼 수 있다.

 

사용자 삽입 이미지

쓰레드 정보도 모니터링이 가능하다.

 

사용자 삽입 이미지

로딩된 클래스의 수도 확인이 가능하다.

 

사용자 삽입 이미지

Mbean 정보도 볼 수 있다.

 

사용자 삽입 이미지

JVM 및 시스템에 관한 정보까지 쭉~ 확인시켜 준다.

 

돈 주고 비싼 툴 사서 보면 더 좋겠지만, 여건이 안 된다면 이런 것도 도움이 되지 않을까 싶다.

 

'Java_Web' 카테고리의 다른 글

웹개발을 위한 Power Tool - Firefox + Firebug  (0) 2007.08.04
프린트 관련 CSS 속성  (0) 2007.06.14
중복 클래스 확인 프로그램  (0) 2007.05.08
Query Generator  (1) 2007.01.30
Unix에 CVS 서버 설치 & 이클립스 연결  (0) 2007.01.06
AND

Query Generator

Java_Web 2007. 1. 30. 07:18



항상 SQL 쿼리를 만드는 일은 단순반복적인 일이다.
그래서, 간단한 프로그램을 만들어 보았다.
위에 첨부한 querygen.war만 deploy하면 되고, 아래의 사용법대로 사용하기만 하면 된다.
단, Oracle 전용이고, 포함된 JDBC 드라이버(ojdbc14.jar)는 10g 버전용이므로 8i, 9i 까지 모두 이상 없을 것이나, 이후에 나오는 버전에서는 안 될 수도 있으니 그 때는 오라클 홈페이지에서 새로운 버전의 드라이버를 다운로드해 사용하길 바란다.
 
 
사용자 삽입 이미지

querygen이라는 context path로 deploy하면 위와 같이 입력하면 화면이 뜬다.

그리고 ,'커넥션정보 표시' 부분을 클릭하면 위와 같이 커넥션 정보가 나타난다.

여기서 IP, Port, SID, ID, Password 등을 입력하면 연결준비가 끝나는 것이다.

단, 이렇게 입력한 정보는 쿠키에 저장되니 다음에 접속해도 이전에 사용했던 정보가 나타난다. 혹시 ID, PW가 저장되지 않길 원한다면 쿠키 부분 코드를 지워서 사용하면 된다.
 

사용자 삽입 이미지


1. 테이블명 일부를 입력하고 '검색' 버튼을 클릭하거나, '전체테이블검색' 버튼을 클릭하면 아래쪽 프레임(②)에 테이블 및 테이블주석 리스트가 나타난다.

2. ②에서 테이블을 선택하고 '컬럼정보' 버튼을 클릭하면 오른쪽 아래와 같은 팝업창에 테이블에 관한 상세한 정보가 나타난다.

3. ②에서 테이블을 선택하고 'SQL 생성' 버튼을 클릭하면 오른쪽 프레임(⑤)에 해당 테이블의 CRUD 쿼리가 생성되어 나타난다.


필요에 따라 적당히 고쳐서 쓰시길...


'Java_Web' 카테고리의 다른 글

웹개발을 위한 Power Tool - Firefox + Firebug  (0) 2007.08.04
프린트 관련 CSS 속성  (0) 2007.06.14
중복 클래스 확인 프로그램  (0) 2007.05.08
JVM Monitoring  (0) 2007.04.14
Unix에 CVS 서버 설치 & 이클립스 연결  (0) 2007.01.06
AND