jmaki+jpa+glassfishv3(eclipselink)+pagination

0

Written on 오후 9:00 by 강여사(J.Y.Kang)

이전에도 이 주제에 대해 하긴 했는데..다시 겸사겸사에 그때 안했던거랑..함 정리차..

그럼 시작..

일단 현재 작업조건은

netbeans 6.7.1 (windows)
jdk 1.6 update 14
db는 javadb (sample)

의 기본팩에서부터 시작

기본팩에는 일단 jmaki 가 설치되어 있지 않기 때문에 우선 jmaki 플러그인부터 설치합니다.
플러그인 설치를 위해서는 도구(tools)-플러그인(plugin) 클릭


jmaki 관련 플러그인이 현재 2가지.. 체크후 아래있는 설치(install) 클릭


팝업창의 진행대로 계속 진행
다음


체크후 설치 클릭
마침 버튼을 누르면 IDE가 재시작된다.


재시작된 IDE에서 새 프로젝트 만들기
new project

java web - web applciation 다음
이름을 적당히 (jmaki_ytable_gv3) 로 줬습니다.


경로도 적당히 다음


이번에는 glassfish v3 로 진행했습니다. glassfish v2 로 진행해도 같습니다. (glassfish v2의 경우 orm의 service provider를 toplink 로, glassfish v3인 경우는 eclipselink가 default 로 되더군요)


jmaki ajax framework 를 선택하고 아래 레이아웃은 standard로 진행
마침(finish)를 누릅니다.

오른쪽 파레트에서 jmaki yahoo - datatable를 클릭하여 index.jsp의 main content 에다 넣습니다.

샘플데이터를 보기위해 바로 실행

run file

실행하면 다음과 같이 제시됩니다.
그럼 일단 여기에 추가 설정을 하도록 하겠습니다.
index.jsp로 돌아와서 pagenated 의 false를 true로 바꾸고 엔터키를 칩니다. (반드시 엔터키를 쳐야 반영됩니다)
그럼 위 그림처럼 pagenated에 대한 기본 상황이 제시됩니다.

yahoo의 페이지네이션에서 기본 제공되고 있는 걸 보면 10,20,50,100 등 기본값이 제시되어 있습니다.

이 값을 수정하기 위해서(여기에는 약간의 버그도 있슴..현재 jmaki에서 rowsPerPage 등의 설정이 바로 반영되지 않습니다. 하여 기타등등 여러가지 수정을 위해서 소스 편집.
resources-yahoo-datatable-component.js 를 열면 355줄에 있는 사항을 다음과 같이 변경.

기본상황

rowsPerPage : 10,
rowsPerPageOptions: [10,20,50,100],
pageLinks :5,

을 다음과 같이 변경

rowsPerPage : args.rowsPerPage,
rowsPerPageOptions: [1,2,5,10],
pageLinks : args.pageLinks,

(그럼 jmaki에 설정한 대로 제시)



pagination 1차 완성



이제 데이터베이스로부터 동적 테이블과의 페이지네이션이 2차..



솔라리스(Solaris)10 에서 썬글래스피시v2.1HADB 설치

0

Written on 오전 6:08 by 강여사(J.Y.Kang)

솔라리스10 기본설치를 하게되면 AS(Sun Java Application Server 8.2)가 번들로 설치된다.
확인 방법은 다음과 같다.
# asadmin
asadmin>version
확인이 끝나면 exit 로 프롬프트로 돌아온다.





서버관련 패키지 확인
#pkgchk -l -p /usr/appserver


#pkgchk -l -p /usr/appserver/javadb


설치된 패키지 삭제
# pkgrm SUNWasac SUNWascmn SUNWasjdoc SUNWasman SUNWasr SUNWasu SUNWasjavadb SUNWasut


y 로 진행(all)












패키지 삭제 및 서버 삭제 확인
#asadmin
아까와는 달리 인식 안됨(없음)

썬에서 다운로드 받은 파일 실행
http://developers.sun.com/appserver/downloads/index.jsp
Sun GlassFish Enterprise Server v2.1 with HADB 다운로드 후 적절한 경로에 놓는다.
(예. /opt/ses/software/ ...)

설치실행
# chmod +x sges_ee-2_1-solaris-i586-ml.bin
# ./sges_ee-2_1-solaris-i586-ml.bin








비밀번호는 adminadmin 으로 (default)



아까 패키지를 지운후 바로가기가 안되므로
루트셀을 변경하고 프로파일에 PATH 추가
# vi /etc/passwd


root 의 로그인셀을 /sbin/sh 에서 /bin/ksh 로 변경


그리고 프로파일 작성
# cd /
# vi .profile


프로파일 내용
export PATH=$PATH:.:/opt/SUNWappserver/bin
저장 후 다시 로그인


다시 asadmin 확인
버전 확인

# asamdin
asadmin> version



도메인 확인 및 시작
asadmin> list-domains
asadmin> start-domain domain1


도메인이 시작되면 웹 브라우저를 열어 확인
http://localhost:4848



솔라리스(Solaris)10 에서 자바 6 패키지 기반(package-based)으로 설치

0

Written on 오전 6:07 by 강여사(J.Y.Kang)

솔라리스 10 u7 을 기본 설치하게되면 자바 5 버전이 번들로 설치되어 있다.

따라서 이 환경에다 자바 6 버전을 패키지 기반(package-based)으로 설치해보고자 한다.

우선 http://java.sun.com/ 의 download (http://java.sun.com/javase/downloads/index.jsp)에서 적절한 파일을 다운로드 받는다.

현재(2009.09.03) 자바 6 버전은 업데이트 16 며, 패키지 기반 설치를 위해서는 *tar.Z 을 다운로드 받는다.

관련 링크: (*tar.Z)

https://cds.sun.com/is-bin/INTERSHOP.enfinity/WFS/CDS-CDS_Developer-Site/en_US/-/USD/ViewFilteredProducts-SingleVariationTypeFilter

다운로드후 다음과 같이 처리

# chmod +x jdk-6-solaris-i586.tar.Z

# zcat jdk-6-solaris-i586.tar.Z | tar -xf -




압축이 풀리면 다음과 같이 패키지 추가
# pkgadd -d . SUNWj6rt SUNWj6dev SUNWj6cfg SUNWj6man SUNWj6dmo

팁. 기존에 6 버전이 설치되어 있다면 삭제방법
# pkgrm SUNWj6rt SUNWj6dev SUNWj6cfg SUNWj6man SUNWj6dmo






패키지 설치 후 심볼릭링크 걸기
# cd /usr
# rm java
# ln -s jdk/jdk1.6.0_16 java
# java -version



자바버전 확인
# java -version

솔라리스 OS 와 리눅스 환경에서 자바 SE 6 에 대한 문제 해결(Troubleshooting) 가이드 팁(Quick Guide)

0

Written on 오후 7:47 by 강여사(J.Y.Kang)

본 문서는 "퀵 스타트 가이드"로 문제 해결(troubleshooting)을 위한 몇 가지 빠른 도움말을 제공합니다. 즉, 정보를 얻기 위해 작업을 수행하거나 하나 이상의 방법을 포함한 문제 해결에 도움이되는 몇 가지 일반적인 기능을 나열합니다.

이러한 요령으로 구성은 다음과 같습니다 : (해당 주제별)

  • 행(Hung), 데드락(Deadlocked), 또는 루핑(Looping) 프로세스
  • 사후 진단(Post-mortem Diagnostics), 메모리 누수(Leaks)
  • 모니터링
  • 원격 디버그 서버 상의 액션(Actions)
  • 기타 기능

행(Hung), 데드락(Deadlocked), 또는 루핑(Looping) 프로세스

  • 출력 쓰레드 모든 Java 쓰레드에 대한 스택 :
    • Control-\
    • kill-QUIT pid
    • jstack pid (또는 jstack -F pid , 만약 jstack pid가 응답하지 않으면)
  • 교착 상태를 감지 :
    • 교착 상태 감지 요청: JConsole 툴, 쓰레드 탭(tab)
    • 쓰레드 교착 상태에 정보 출력 : Control-\
    • 각각의 쓰레드가 소유한 동시 잠금 목록 출력: -XX:+PrintConcurrentLocks 세트, 그 후 Control-\
    • 프로세스에 대한 잠금 정보 출력 : jstack -l pid 명령
  • 프로세스에 대한 힙 히스토그램(heap histrogram) 가져오기 :
    • 자바 프로세스를 다음 옵션으로 시작 -XX:+PrintClassHistogram, 그 후 Control-\
    • jmap -histo 명령 (만약 pid 응답이 없으면 -F 옵션 추가)
  • 프로세스에 대한 자바 힙 덤프를 바이너리 형식의 파일에 덤프 뜨기:
    • jmap –dump: format=b,file=filename pid (만약 pid 응답이 없으면 -F 옵션 추가)
  • 프로세스를 위한 공유된 객체 매핑 출력
    • jmap pid
  • 프로세스를 위한 힙 요약정보 출력
    • Control-\
    • jmap -heap pid
  • 프로세스를 위한 종료자(finalization) 정보 출력
    • jmap -finalizerinfo pid
  • 프로세스에 명령어 디버거 붙이기(attach)
    • jdb -connect sun.jvm.hotspot.jdi.SAPIDAttachingConnector:pid=pid jmap -histo 명령

사후 진단, (Post-mortem Diagnostics), 메모리 누수(Memory Leaks)

  • 치명적인 오류 로그 파일을 검사합니다. 기본 파일 이름은 hs_err_pidpid.log 로 작업 디렉토리에 들어있습니다.
  • 힙 덤프(heap dump) 생성 :
    • HPROF 활성시켜 응용 프로그램 시작: java -agentlib:hprof=file=file,format=b application; 그후 Control-Break파일
    • HPROF 활성시켜 응용 프로그램 시작: java -agentlib:hprof=heap=dump application
    • JConsole 툴에서 MBeans 탭
    • 다음 옵션으로 VM 시작 -XX:+HeapDumpOnOutOfMemoryError;; OutOfMemoryError 가 던져지면, VM은 힙 덤프(heap dump)를 자동 생성합니다.
  • 자바 힙 덤프 보기(Browse) :
    • jhat heap-dump-file
  • 프로세스에 대한 힙 히스토그램 가져오기:
    • 다음 옵션으로 자바 프로세스 시작: -XX:+PrintClassHistogram, 그후 Control-Break
    • jmap -histo pid (만약 pid 응답이 없으면 -F 옵션 추가)
  • 코어 파일로부터 힙 히스토그램 가져오기:
    • jmap -histo corefile
  • 코어 파일로부터 공유된 객체 매핑 출력:
    • jmap corefile
  • 코어 파일로부터 힙 요약정보 출력:
    • jmap -heap corefile
  • 코어 파일로부터 종료자(finalization) 정보 출력:
    • jmap -finalizerinfo corefile
  • 코어 파일로부터 자바 설정 정보 출력:
    • jinfo corefile
  • 코어 파일로부터 쓰레드 추적 출력:
    • jstack corefile
  • 코어 파일로부터 잠금 정보 출력:
    • jstack -l corefile
  • 같은 머신 상에서 코어 파일에 명령어 디버거 붙이기(attach):
    • jdb -connect sun.jvm.hotspot.jdi.SACoreAttachingConnector:javaExecutable=path,core=corefile
  • 서로 다른 머신상에서 코어 파일에 명령어 디버거 붙이기(attach):
    • 코어 파일을 가진 쪽: jsadebugd path corefile
    • 디버거를 가진 쪽: jdb -connect sun.jvm.hotspot.jdi.SADebugServerAttachingConnector:debugServerName=machine
  • libumem 은 메모리 누수를 디버그하기 위해 사용될 수 있다.


 

모니터링 (jstat 윈도우 98이나 윈도우 ME에서 사용할 수 없습니다.)

참고 : jstat 명령에 대한 인수는 가상 머신 vmID 식별자입니다. jstat man 페이지를 참조하십시오

자세한 설명

  • 클래스 로더에 통계 출력 :
    • jstat -class vmID
  • 컴파일러에 대한 통계 출력 :
    • 컴파일러 동작 : jstat -compiler vmID
    • 컴파일 메소드에 대한 통계 : jstat - printcompilation vmID
  • 가비지 컬렉션에 통계 출력 :
    • 요약 통계 : jstat -gcutil vmID
    • 오류 포함, 요약 통계 : jstat - gccause vmID
    • GC의 힙 동작(behavior) : jstat -gc vmID
    • 모든 generations 용량 : jstat -gccapacity vmID
    • new generation 동작: jstat -gcnew vmID
    • new generation 용량: jstat -gcnewcapacity vmID
    • old 와 permanent generations 동작: jstat -gcold vmID
    • old generations 용량 : jstat -gcoldcapacity vmID
    • permanent generations 용량: jstat -gcpermcapacity vmID
  • finalization를 기다리는 개체 모니터링:
    • JConsole 툴, VM 요약 탭
    • jmap -finalizerinfo pid
    • java.lang.management.MemoryMXBean 클래스 안에 있는 getObjectPendingFinalizationCount 메소드
  • 메모리 모니터 :
    • HPROF를 통해 힙 할당 프로필(profiles) : java -agentlib:hprof=heap=sites
    • JConsole 툴, 메모리 탭
    • Control – Break 는 generation 정보 출력
  • CPU 사용률 모니터 :
    • 쓰레드 스택 관련 : java -agentlib:hprof=cpu=samples application
    • 메소드 관련 : java -agentlib:hprof=cpu=times application
    • JConsole 툴, 개요 및 VM을 요약 탭
  • 쓰레드 활동 모니터 :
    • JConsole 툴, 쓰레드 탭
  • 클래스 액티비티 모니터 :
    • JConsole 툴, 클래스 탭

원격 디버그 서버 위의 액션(actions)

  • 우선,디버그 데몬 jsadebugd 부르고, 그 후 명령 실행: jmap -dump:format=b,file=filename hostID
    • 이진 포맷의 자바 힙을 파일에 덤프:
    • 공유된 객체 매핑 출력: jmap hostID
    • 힙 요약정보 출력 jmap -heap hostID
    • 종료자 정보 출력: jmap -finalizerinfo hostID
    • 잠금 정보 출력: jstack -l hostID
    • 쓰레드 추적 출력: jstack hostID
    • 자바 설정 정보 출력: jinfo hostID

기타 기능

  • instrumented 자바 가상 머신 인터페이스 :
    • instrumented VMs (Windows 98이나 Windows ME 불가) 생성 및 종료 모니터 : jstatd daemon
    • instrumented VMs (Windows 98이나 Windows ME 불가) 목록 : jps
    • 원격 모니터링 툴 및 로컬 VM 간 인터페이스 제공 (Windows 98 이나 Windows ME 불가) : jstatd daemon
    • 가비지 컬렉션 요청 : JConsole 툴, 메모리 탭
  • 프로세스의 특정 자바 VM 플래그(flags) 값 동적 설정, 해제, 또는 변경 :
    • jinfo -flag flag pid
  • 가상 머신에 Java VM 플래그(flag) 전달하기 :
    • jconsole -Jflag ...
    • jhat -Jflag ...
    • jmap -Jflag ...
  • 클래스 로더에 의한, 자바 힙의 영속 제너레이션 통계 출력
    • jmap -permstat
  • 모니터 경합 보고 :
    • java -agentlib:hprof=monitor=y application
  • 대화식(interactive) 모드 또는 일괄처리(batch) 모드로 스크립트 평가 또는 실행 :
    • jrunscript
  • MBean 동적 인터페이스, JConsole 툴 탭을 통해 MBean :
    • 트리 구조 보기.
    • 속성 값 설정.
    • 작업(operation) 호출.
    • 알림(notification) 설정(subscribe)
  • 대화식 명령 - 라인 디버거 실행 :
    • 클래스에 대한 새 VM이 : jdb class
    • 실행중인 VM에 디버거 첨부 : jdb –attach address

윈도우 환경에서 자바 SE 6 에 대한 문제 해결(Troubleshooting) 가이트 팁(Quick Guide)

0

Written on 오전 1:33 by 강여사(J.Y.Kang)

본 문서는 "퀵 스타트 가이드"로 문제 해결(troubleshooting)을 위한 몇 가지 빠른 도움말을 제공합니다. 즉, 정보를 얻기 위해 작업을 수행하거나 하나 이상의 방법을 포함한 문제 해결에 도움이되는 몇 가지 일반적인 기능을 나열합니다.

이러한 요령으로 구성은 다음과 같습니다 : (해당 주제별)

  • 행(Hung), 데드락(Deadlocked), 또는 루핑(Looping) 프로세스
  • 사후 진단(Post-mortem Diagnostics), 메모리 누수(Leaks)
  • 모니터링
  • 기타 기능

행(Hung), 데드락(Deadlocked), 또는 루핑(Looping) 프로세스

  • 출력 쓰레드 모든 Java 쓰레드에 대한 스택 :

    • Control-Break
    • jstack pid 명령
  • 교착 상태를 감지 :

    • 교착 상태 감지 요청: JConsole 툴, 쓰레드 탭(tab)
    • 쓰레드 교착 상태에 정보 출력 : Control-Break
    • 프로세스에 대한 잠금 정보 출력 : jstack -l pid 명령
  • 프로세스에 대한 힙 히스토그램(heap histrogram) 가져오기 :

    • 자바 프로세스를 다음 옵션으로 시작 -XX:+PrintClassHistogram, 그후 Control-Break
    • jmap -histo 명령
    • 프로세스에 대한 자바 힙 덤프를 바이너리 형식의 파일에 덤프 뜨기:
    • jmap –dump: format=b,file=filename pid

사후 진단, (Post-mortem Diagnostics), 메모리 누수(Memory Leaks)

  • 치명적인 오류 로그 파일을 검사합니다. 기본 파일 이름은 hs_err_pidpid.log 로 작업 디렉토리에 들어있습니다.
  • 힙 덤프(heap dump) 생성 :

    • HPROF 활성시켜 응용 프로그램 시작: java -agentlib:hprof=file=file,format=b application; 그후 Control-Break파일
    • HPROF 활성시켜 응용 프로그램 시작: java -agentlib:hprof=heap=dump application
    • JConsole 툴에서 MBeans 탭
    • 다음 옵션으로 VM 시작 -XX:+HeapDumpOnOutOfMemoryError;; OutOfMemoryError 가 던져지면, VM은 힙 덤프(heap dump)를 자동 생성합니다.
  • 자바 힙 덤프 보기(Browse) :

    • jhat heap-dump-file
  • 프로세스에 대한 힙 히스토그램 가져오기:

    • 다음 옵션으로 자바 프로세스 시작: -XX:+PrintClassHistogram, 그후 Control-Break
    • jmap -histo pid
  • 모니터링 (jstat 윈도우 98이나 윈도우 ME에서 사용할 수없습니다.)

참고 : jstat 명령에 대한 인수는 가상 머신 vmID 식별자입니다. jstat man 페이지를 참조하십시오

자세한 설명

  • 클래스 로더에 통계 출력 :

    • jstat -class vmID
  • 컴파일러에 대한 통계 출력 :

    • 컴파일러 동작 : jstat -compiler vmID
    • 컴파일 메소드에 대한 통계 : jstat - printcompilation vmID
  • 가비지 컬렉션에 통계 출력 :

    • 요약 통계 : jstat -gcutil vmID
    • 오류 포함, 요약 통계 : jstat - gccause vmID
    • GC의 힙 동작(behavior) : jstat -gc vmID
    • 모든 generations 용량 : jstat -gccapacity vmID
    • new generation 동작: jstat -gcnew vmID
    • new generation 용량: jstat -gcnewcapacity vmID
    • old 와 permanent generations 동작: jstat -gcold vmID
    • old generations 용량 : jstat -gcoldcapacity vmID
    • permanent generations 용량: jstat -gcpermcapacity vmID
  • finalization를 기다리는 개체 모니터링:

    • JConsole 툴, VM 요약 탭
    • java.lang.management.MemoryMXBean 클래스 안에 있는getObjectPendingFinalizationCount 메소드
  • 메모리 모니터 :

    • HPROF를 통해 힙 할당 프로필(profiles) : java -agentlib:hprof=heap=sites
    • JConsole 툴, 메모리 탭
    • Control – Break 는 generation 정보 출력
  • CPU 사용률 모니터 :

    • 쓰레드 스택 관련 : java -agentlib:hprof=cpu=samples application
    • 메소드 관련 : java -agentlib:hprof=cpu=times application
    • JConsole 툴, 개요 및 VM을 요약 탭
  • 쓰레드 활동 모니터 :

    • JConsole 툴, 쓰레드 탭
  • 클래스 액티비티 모니터 :

    • JConsole 툴, 클래스 탭

기타 기능

  • instrumented 자바 가상 머신 인터페이스 :

    • instrumented VMs (Windows 98이나 Windows ME 불가) 생성 및 종료 모니터 : jstatd daemon
    • instrumented VMs (Windows 98이나 Windows ME 불가) 목록 : jps
    • 원격 모니터링 툴 및 로컬 VM 간 인터페이스 제공 (Windows 98 이나 Windows ME 불가) : jstatd daemon
    • 가비지 컬렉션 요청 : JConsole 툴, 메모리 탭
  • 프로세스의 특정 자바 VM 플래그(flags) 값 동적 설정, 해제, 또는 변경 :

    • jinfo -flag flag pid
  • 가상 머신에 Java VM 플래그(flag) 전달하기 :

    • jconsole -Jflag ...
    • jhat -Jflag ...
  • 모니터 경합 보고 :

    • java -agentlib:hprof=monitor=y application
  • 대화식(interactive) 모드 또는 일괄처리(batch) 모드로 스크립트 평가 또는 실행 :

    • jrunscript
  • MBean 동적 인터페이스, JConsole 툴 탭을 통해 MBean :

    • 트리 구조 보기.
    • 속성 값 설정.
    • 작업(operation) 호출.
    • 알림(notification) 설정(subscribe)
  • 대화식 명령 - 라인 디버거 실행 :

    • 클래스에 대한 새 VM이 : jdb class
    • 실행중인 VM에 디버거 첨부 : jdb –attach address