Postgresql PartitioningPostgresql Partitioning
Posted at 2012/01/22 17:23 | Posted in Databasehttp://www.postgresql.org/docs/8.4/static/ddl-partitioning.html
Create Partition Table
먼저 파티션 테이블을 적용할 마스터 테이블을 하나 만듭니다.
-
-- drop table log cascade;
-
-
-- master table
-
create table log (
-
-- uuid
-
log_uuid UUID not null default uuid_generate_v4(),
-
-- 인증 아이디
-
athn_id text not null,
-
-- 서비스명
-
svc_nm text not null,
-
-- 오퍼레이션명
-
oprt_nm text not null,
-
-- 요청일시
-
log_rqst_dt timestamp not null,
-
-- 응답일시
-
log_rply_dt timestamp not null,
-
-- 상태 코드
-
log_stat_cd text not null,
-
-- 등록일시
-
log_crtn_dt timestamp not null
-
);
-
-- partition table
-
create table log_m01 (
-
check (date_part('month', log_rqst_dt) = 1)
-
) inherits (log);
-
-
create table log_m02 (
-
check (date_part('month', log_rqst_dt) = 2)
-
) inherits (log);
-
-
create table log_m03 (
-
check (date_part('month', log_rqst_dt) = 3)
-
) inherits (log);
-
-
create table log_m04 (
-
check (date_part('month', log_rqst_dt) = 4)
-
) inherits (log);
-
-
create table log_m05 (
-
check (date_part('month', log_rqst_dt) = 5)
-
) inherits (log);
-
-
create table log_m06 (
-
check (date_part('month', log_rqst_dt) = 6)
-
) inherits (log);
-
-
create table log_m07 (
-
check (date_part('month', log_rqst_dt) = 7)
-
) inherits (log);
-
-
create table log_m08 (
-
check (date_part('month', log_rqst_dt) = 8)
-
) inherits (log);
-
-
create table log_m09 (
-
check (date_part('month', log_rqst_dt) = 9)
-
) inherits (log);
-
-
create table log_m10 (
-
check (date_part('month', log_rqst_dt) = 10)
-
) inherits (log);
-
-
create table log_m11 (
-
check (date_part('month', log_rqst_dt) = 11)
-
) inherits (log);
-
-
create table log_m12 (
-
check (date_part('month', log_rqst_dt) = 12)
-
) inherits (log);
기본키를 생성합니다.
-
-- create primary key
-
alter table log add constraint log_pk primary key (log_uuid);
-
alter table log_m01 add constraint log_m01_pk primary key (log_uuid);
-
alter table log_m02 add constraint log_m02_pk primary key (log_uuid);
-
alter table log_m03 add constraint log_m03_pk primary key (log_uuid);
-
alter table log_m04 add constraint log_m04_pk primary key (log_uuid);
-
alter table log_m05 add constraint log_m05_pk primary key (log_uuid);
-
alter table log_m06 add constraint log_m06_pk primary key (log_uuid);
-
alter table log_m07 add constraint log_m07_pk primary key (log_uuid);
-
alter table log_m08 add constraint log_m08_pk primary key (log_uuid);
-
alter table log_m09 add constraint log_m09_pk primary key (log_uuid);
-
alter table log_m10 add constraint log_m10_pk primary key (log_uuid);
-
alter table log_m11 add constraint log_m11_pk primary key (log_uuid);
-
alter table log_m12 add constraint log_m12_pk primary key (log_uuid);
인덱스를 생성합니다. 마스터 테이블은 인덱스를 생성하지 않습니다.
-
-- create index
-
create index log_m01_athn_id_idx on log_m01 (athn_id);
-
create index log_m01_svc_nm on log_m01 (svc_nm);
-
create index log_m01_oprt_nm on log_m01 (oprt_nm);
-
-
create index log_m02_athn_id_idx on log_m02 (athn_id);
-
create index log_m02_svc_nm on log_m02 (svc_nm);
-
create index log_m02_oprt_nm on log_m02 (oprt_nm);
-
-
create index log_m03_athn_id_idx on log_m03 (athn_id);
-
create index log_m03_svc_nm on log_m03 (svc_nm);
-
create index log_m03_oprt_nm on log_m03 (oprt_nm);
-
-
create index log_m04_athn_id_idx on log_m04 (athn_id);
-
create index log_m04_svc_nm on log_m04 (svc_nm);
-
create index log_m04_oprt_nm on log_m04 (oprt_nm);
-
-
create index log_m05_athn_id_idx on log_m05 (athn_id);
-
create index log_m05_svc_nm on log_m05 (svc_nm);
-
create index log_m05_oprt_nm on log_m05 (oprt_nm);
-
-
create index log_m06_athn_id_idx on log_m06 (athn_id);
-
create index log_m06_svc_nm on log_m06 (svc_nm);
-
create index log_m06_oprt_nm on log_m06 (oprt_nm);
-
-
create index log_m07_athn_id_idx on log_m07 (athn_id);
-
create index log_m07_svc_nm on log_m07 (svc_nm);
-
create index log_m07_oprt_nm on log_m07 (oprt_nm);
-
-
create index log_m08_athn_id_idx on log_m08 (athn_id);
-
create index log_m08_svc_nm on log_m08 (svc_nm);
-
create index log_m08_oprt_nm on log_m08 (oprt_nm);
-
-
create index log_m09_athn_id_idx on log_m09 (athn_id);
-
create index log_m09_svc_nm on log_m09 (svc_nm);
-
create index log_m09_oprt_nm on log_m09 (oprt_nm);
-
-
create index log_m10_athn_id_idx on log_m10 (athn_id);
-
create index log_m10_svc_nm on log_m10 (svc_nm);
-
create index log_m10_oprt_nm on log_m10 (oprt_nm);
-
-
create index log_m11_athn_id_idx on log_m11 (athn_id);
-
create index log_m11_svc_nm on log_m11 (svc_nm);
-
create index log_m11_oprt_nm on log_m11 (oprt_nm);
-
-
create index log_m12_athn_id_idx on log_m12 (athn_id);
-
create index log_m12_svc_nm on log_m12 (svc_nm);
-
create index log_m12_oprt_nm on log_m12 (oprt_nm);
룰(RULE), 트리거(TRIGGER) 두가지 방법이 있는데 전 트리거를 사용하겠습니다.
-
create language plpgsql;
-
-
create or replace function log_insert_trigger()
-
returns trigger as $$
-
begin
-
if ( date_part('month', new.log_rqst_dt) = 1 ) then
-
insert into log_m01 values (new.*);
-
elsif ( date_part('month', new.log_rqst_dt) = 2 ) then
-
insert into log_m02 values (new.*);
-
elsif ( date_part('month', new.log_rqst_dt) = 3 ) then
-
insert into log_m03 values (new.*);
-
elsif ( date_part('month', new.log_rqst_dt) = 4 ) then
-
insert into log_m04 values (new.*);
-
elsif ( date_part('month', new.log_rqst_dt) = 5 ) then
-
insert into log_m05 values (new.*);
-
elsif ( date_part('month', new.log_rqst_dt) = 6 ) then
-
insert into log_m06 values (new.*);
-
elsif ( date_part('month', new.log_rqst_dt) = 7 ) then
-
insert into log_m07 values (new.*);
-
elsif ( date_part('month', new.log_rqst_dt) = 8 ) then
-
insert into log_m08 values (new.*);
-
elsif ( date_part('month', new.log_rqst_dt) = 9 ) then
-
insert into log_m09 values (new.*);
-
elsif ( date_part('month', new.log_rqst_dt) = 10 ) then
-
insert into log_m10 values (new.*);
-
elsif ( date_part('month', new.log_rqst_dt) = 11 ) then
-
insert into log_m11 values (new.*);
-
elsif ( date_part('month', new.log_rqst_dt) = 12 ) then
-
insert into log_m12 values (new.*);
-
else
-
raise exception 'month out of range. fix the log_insert_trigger() function!';
-
end if;
-
-
-- return null
-
return null;
-
end;
-
$$
-
language plpgsql;
-
-
-- log 마스터 테이블에 트리거 적용
-
create trigger log_insert_trigger
-
before insert on log
-
for each row execute procedure log_insert_trigger();
Select Partition Table
이제 파티션 테이블은 다 만들었습니다.
이렇게 만들어진 파티션 테이블을 관리용(월 단위 삭제라든가..)으로 사용할땐 상관이 없지만, 조회(select)시에 그냥 하면 파티션을 제대로 이용하지 못합니다.
파티션을 만들 때 CHECK 구문에 들어갔던 조건절이 반드시 들어가야 합니다.
이게 뭔 소리냐 하면...
-
select
-
count(*)
-
from
-
log
-
where
-
log_rqst_dt between date '2011-04-11' and date '2011-05-02'
어떻게 검색이 되는지 보면 아래와 같습니다..
월단위로 나눠서 저장했던 12개의 테이블을 다 스캔하게 됩니다. ㅠ_ㅠ
log_m04, log_m05 테이블만 조회 해야 하지요....
아래와 같이 파티션 테이블 만들때의 CHECK 조건을 명시해줘야 합니다.
-
select
-
count(*)
-
from
-
log
-
where
-
log_rqst_dt between date '2011-04-11' and date '2011-05-02'
-
and date_part('month', log_rqst_dt) in (4,5)
이번에는 인덱스로 지정한 컬럼으로 검색 해봅시다.
-
select
-
count(*)
-
from
-
log
-
where
-
date_part('month', log_rqst_dt) in (1,2,3)
-
and athn_id = 'athn_02'
-
and log_rqst_dt between date '2011-01-01' and date '2011-03-02'
물론 날짜 범위 검색이 필수가 아니게 되면 12개 테이블을 전부 스캔하게 되니 주의!!!
'Database' 카테고리의 다른 글
| Postgresql Partitioning (0) | 2012/01/22 |
|---|
Eclipse + TPTP RemoteEclipse + TPTP Remote
Posted at 2012/01/20 21:23 | Posted in IDE/EclipseUbuntu 11.04 32bit 에서 테스트 하겠습니다.
Linux nerv.kr 2.6.38-8-generic-pae #42-Ubuntu SMP Mon Apr 11 05:17:09 UTC 2011 i686 i686 i386 GNU/Linux
http://dev.eclipse.org/viewcvs/viewvc.cgi/platform/org.eclipse.tptp.platform.agentcontroller/src-native-new/packaging_md/linux/getting_started.html?root=TPTP_Project&view=co
Setting Up Agent Controller
서버에 심어둘 Agent Controller(AC)를 다운로드 합니다.
http://www.eclipse.org/tptp/home/downloads/
다운로드 받아서 압축을 풉니다. (전 "opt/tptpAC" 에 풀었습니다.)
bin 디렉토리의 SetConfig.sh 스크립트를 한번 실행해줍니다.
1. JVM 위치 : 디폴트 값이 맞다면 그냥 엔터로 넘기시면 됩니다.
2. 네트워크 엑세스 : ALL
3. 보안 사용 : 패스
Specify the fully qualified path of "java" (e.g. /usr/java1.4/jre/bin/java):
Default>"/usr/lib/jvm/java-6-sun-1.6.0.26/jre/bin/java" (Press <ENTER> to accept the default value)
New value>/usr/lib/jvm/java-6-sun/bin/java
Network access mode (ALL=allow any host, LOCAL=allow only this host, CUSTOM=list of hosts):
Default>"LOCAL" (Press <ENTER> to accept the default value)
New value>ALL
Security enabled. (true/false):
Default>"FALSE" (Press <ENTER> to accept the default value)
New value>
/opt/tptpAC/bin#
Agent Controller Server 를 실행합니다. (끄는건 ACStop.sh)
Starting Agent Controller.
ACServer started successfully.
Checking Agent Controller Installation
한번 테스트 해봅시다.
Connected to the Agent Controller on "localhost" at port number 10006
The Time Collector Agent ID: 103
Established a data channel with the agent.
Sending 5 Hello messages over data channel to TimeCollector ...
Start the TimeCollector ...
Incoming data: Hello from Time Collector Agent - Count 0
Incoming data: Hello from Time Collector Agent - Count 1
Incoming data: Hello from Time Collector Agent - Count 2
Incoming data: Hello from Time Collector Agent - Count 3
Incoming data: Hello from Time Collector Agent - Count 4
Incoming data: Hello from Time Collector Agent - Count 5
Stop the TimeCollector ...
Incoming data: Hello from Time Collector Agent - Count 6
Incoming data: Hello from Time Collector Agent - Count 7
Incoming data: Hello from Time Collector Agent - Count 8
Incoming data: Hello from Time Collector Agent - Count 9
All finished
Press enter key to exit...
/opt/tptpAC/bin#
포트가 열려 있는지 확인 해봅시다.
tcp6 0 0 :::10002 :::* LISTEN
tcp6 0 0 ***.***.***.***:10002 ***.***.***.***:50412 ESTABLISHED
# netstat -n -a | grep 10005
tcp6 0 0 :::10005 :::* LISTEN
# netstat -n -a | grep 10006
tcp6 0 0 :::10006 :::* LISTEN
tcp6 0 0 ***.***.***.***:10006 ***.***.***.***:50414 ESTABLISHED
Profiling a Java Application
이제 톰켓을 프로파일링 모드로 구동시켜 봅시다.
시작 스크립트 부분에 아래와 같이 환경변수를 세팅해 줍니다.
export TEMP="/tmp"
export TMP="/tmp"
export TPTP_AC_HOME="/opt/tptpAC"
export JAVA_PROFILER_HOME="${TPTP_AC_HOME}/plugins/org.eclipse.tptp.javaprofiler"
export PATH="${JAVA_PROFILER_HOME}:${TPTP_AC_HOME}/bin:${PATH}"
export LD_LIBRARY_PATH="${JAVA_PROFILER_HOME}:${TPTP_AC_HOME}/lib:${LD_LIBRARY_PATH}"
그리고 자바 옵션에 아래와 같이 추가합니다.
프로파일링의 종류는 3가지가 있습니다.
- CGProf : Execution time analysis.
- HeapProf : Object allocation/heap analysis.
- Thread : Thread analysis.
저의 구동 스크립트는 CATALINA_OPTS 변수를 사용하더군요 ㅎㅎ
※ 만약 JPIAgent 를 찾을 수 없다거나 에러가 난다면 앞뒤로 '(쿼터)를 추가해 봅시다.
OS 종류에 따라 좀 틀려서.. ㅠ_ㅠ
옵션이 제대로 박혀 들어가 있는지도 확인 해봅시다.
tomcat6 5899 1 2 20:12 ? 00:01:15 /usr/lib/jvm/java-6-sun/bin/java -Djava.util.logging.config.file=/var/lib/tomcat6/conf/logging.properties -Djava.awt.headless=true -Xmx128m -XX:+UseConcMarkSweepGC -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Xms256m -Xmx512m -agentlib:JPIBootLoader=JPIAgent:server=enabled;HeapProf -Djava.endorsed.dirs=/usr/share/tomcat6/endorsed -classpath /usr/share/tomcat6/bin/bootstrap.jar -Dcatalina.base=/var/lib/tomcat6 -Dcatalina.home=/usr/share/tomcat6 -Djava.io.tmpdir=/tmp/tomcat6-tmp org.apache.catalina.startup.Bootstrap start
이제 이클립스에서 원격으로 붙어서 상태를 확인 해봅시다.
물론 TPTP 플러그인은 깔려 있어야 합니다. ^^;;
Run - Profile Configurations...
Attach to Agent 를 추가하고 원격으로 볼 주소를 Default Hosts 에 추가합니다.
Agents 탭에 보면 떠있는 프로파일링이 보입니다. (바로 안보이면 Refresh 버튼 한번 클릭!)
선택 후 "Profile" 버튼을 클릭합니다.
"Profiling and Logging" 퍼스펙티브로 이동해서 보면 "Profiling Monitor" 탭에 등록한 호스트가 보일겁니다.
더블클릭해서 보면 프로파일링 결과가 나옵니다. ㅎㅎ
생각보다는 어렵지 않네요...
'IDE > Eclipse' 카테고리의 다른 글
| Eclipse + TPTP Remote (0) | 2012/01/20 |
|---|---|
| Eclipse + TPTP (Eclipse Test & Performance Tools Platform) (0) | 2012/01/01 |
| Eclipse + MyBatis Generator (0) | 2011/07/04 |
| installation Oracle Enterprise Pack for Eclipse (2) | 2011/05/22 |
| Eclipse + STS (SpringSource Tool Suite) (1) | 2011/01/16 |
| Eclipse Plugins for JBoss technology (1) | 2011/01/11 |
Eclipse + TPTP (Eclipse Test & Performance Tools Platform)Eclipse + TPTP (Eclipse Test & Performance Tools Platform)
Posted at 2012/01/01 21:00 | Posted in IDE/Eclipse프로파일링 툴중 하나로 TPTP 라는 것이 있길래 이것저것 해보았습니다. ^^;;
TPTP 를 이용하여 웹어플(Web Application)을 프로파일링 해보겠습니다!
http://www.eclipse.org/tptp/
http://www.eclipse.org/tptp/home/documents/tutorials/profileOnServer/TPTP-WTP.html
Eclipse 3.6 (Helios) SR2 에서 진행합니다.
Installing TPTP prerequisites
TPTP 설치 전에 필요로 하는 플러그인들이 있습니다.
1. WTP (Web Tools Platform) - http://eclipse.org/webtools/
이클립스를 J2EE 버전으로 설치했다면 포함되어 있습니다.
2. EMF (Eclipse Modeling Framework) - http://www.eclipse.org/modeling/emf/
3. GEF (Graphical Editing Frame work) - http://www.eclipse.org/gef/
Installing TPTP
이클립스를 이용하여 다운로드 하면 다운로드 진행이 안되서 전 플러그인을 다운로드 받아서 설치했습니다.
4.7.2 - http://www.eclipse.org/downloads/download.php?file=/tptp/4.7.2/TPTP-4.7.2/tptp.sdk-TPTP-4.7.2.zip
Downloading and installing the Agent Controller
TPTP 를 사용하기 위해선 AC(Agent Controller)라는 것을 심어놔야 하는데 로컬 서버는 필요 없습니다.
Setting up a Server
그냥 톰켓 7.0 으로 테스트 하겠습니다.
Profile a Server
이제 준비는 끝났습니다.
서버(WAS)를 시작할 때 프로파일 모드(?)로 실행하면 됩니다.
아래와 같이 팝업이 뜹니다.
실행시간(Execuion Time), 메모리(Memory), 쓰래드(Thread)를 분석Analysis할 수 있습니다.
3개중 하나를 선택 하고 "Finish" 버튼을 클릭 하면 WAS 가 기동됩니다.
기동된 후 아래와 같이 창이 뜹니다.
퍼스펙티브(Perspective)를 변경할 거냐고 물어보는데 어차피 상세내역을 보려면 변경해서 봐야하므로 아무거나 선택 ^^;;
웹어플을 이것저것 테스트한 후에 "Profilling Monitor" 뷰에서 더블클릭 하거나 "Profiling and Logging" 퍼스펙티브를 선택하여 이동합니다.
그러면 아래와 같이 각 메소드마다 처리 시간을 볼 수 있네요~
나머지 두가지(메모리, 쓰래드)는 각자 해보시면 되겠습니다. -_-;;
오른쪽 상단의 아이콘이나 컨텍스트 메뉴를 이용하면 이런저런 기능들이 많네요~
자기 로컬에서 하는 것은개발할 때 잠깐 켜놓는 것이기 때문에 아주 눈에 띄게 잘못된 부분이 아니면 찾아내기는 힘들 것 같습니다.
통합테스트나 할 때 개발(운영) 서버에 띄워놓고 장기간 관찰해야 진짜로 효과가 있을듯 합니다.
이제 원격지에 AC(Agent Controller)를 심어놓고 하는 방법을 공부해봐야 겠습니다. ㅠ_ㅠ
'IDE > Eclipse' 카테고리의 다른 글
| Eclipse + TPTP Remote (0) | 2012/01/20 |
|---|---|
| Eclipse + TPTP (Eclipse Test & Performance Tools Platform) (0) | 2012/01/01 |
| Eclipse + MyBatis Generator (0) | 2011/07/04 |
| installation Oracle Enterprise Pack for Eclipse (2) | 2011/05/22 |
| Eclipse + STS (SpringSource Tool Suite) (1) | 2011/01/16 |
| Eclipse Plugins for JBoss technology (1) | 2011/01/11 |
jQuery UI Datepicker IE 버그 해결...jQuery UI Datepicker IE 버그 해결...
Posted at 2011/08/26 14:27 | Posted in JavaScript/jQuery요게 잘 되는 것 같지만 IE(Internet Explorer)에서는 약간의 문제가 있습니다.
사용할 수 없을 정도는 아니고 날짜를 선택 했는데 달력이 또 나오게 됩니다.
1. 해당 텍스트 입력에 포커스가 가게 됩니다.
2. 달력(datepicker)창이 열립니다.
3. 날짜를 하나 선택합니다.
4. 창이 닫힙니다.
5. 해당 텍스트 입력으로 포커스가 다시 갑니다.
2. 달력(datepicker)창이 열립니다.
이와 같이 달력 밖 영역을 클릭해서 없애지 않는한 무한 날짜 선택이 됩니다. -_-;;
그냥 냅둬도 되지만... 찜찜해서 아예 포커스를 안주게 수정 하였습니다.
/* Update the input field with the selected date. */
_selectDate: function(id, dateStr) {
var target = $(id);
var inst = this._getInst(target[0]);
dateStr = (dateStr != null ? dateStr : this._formatDate(inst));
if (inst.input)
inst.input.val(dateStr);
this._updateAlternate(inst);
var onSelect = this._get(inst, 'onSelect');
if (onSelect)
onSelect.apply((inst.input ? inst.input[0] : null), [dateStr, inst]); // trigger custom callback
else if (inst.input)
inst.input.trigger('change'); // fire the change event
if (inst.inline)
this._updateDatepicker(inst);
else {
this._hideDatepicker();
this._lastInput = inst.input[0];
// 포커스를 주지 않는다.
// inst.input.focus(); // restore focus
// 포커스 해제
inst.input.blur();
this._lastInput = null;
}
},
'JavaScript > jQuery' 카테고리의 다른 글
| jQuery UI Datepicker IE 버그 해결... (0) | 2011/08/26 |
|---|---|
| Eclipse + Aptana : jQuery Code Assist 사용하기 (8) | 2010/03/25 |
Eclipse + WebLogic 추가 설정 사항들...Eclipse + WebLogic 추가 설정 사항들...
Posted at 2011/08/23 11:40 | Posted in Server/WebLogicEclipse + WebLogic 연동해서 쓰고.....
Workspace 기본 인코딩(encoding)을 UTF-8로 설정하게 되면
서버를 띄운 후 콘솔(Console) 내용 중에 한글이 깨져서 나오게 됩니다.
<2010. 8. 22 ���� 12�� 46�� 54�� KST> <Notice> <Se................
웹로직 로그파일이 UTF-8이 아니라서 그런데 설정을 해줘야합니다.
"......\user_projects\domains\domain1(도메인명)\bin" 폴더에서 setDomainEnv.cmd 파일을 수정합니다.
227 라인 정도 부분에 JAVA_PROPERTIES 환경 변수에 추가해줍니다.
-Dfile.encoding=UTF8 -Dfile.client.encoding=UTF8
다시 웹로직을 시작 시키면 한글이 제대로 나옵니다.
서버 시작시 윕에서 적용한 옵션이 나오는 것을 확인할 수 있습니다.
***************************************************
* To start WebLogic Server, use a username and *
* password assigned to an admin-level user. For *
* server administration, use the WebLogic Server *
* console at http:\\hostname:port\console *
***************************************************
starting weblogic with Java version:
java version "1.6.0_21"
Java(TM) SE Runtime Environment (build 1.6.0_21-b07)
Java HotSpot(TM) Client VM (build 17.0-b17, mixed mode, sharing)
Starting WLS with line:
C:\PROGRA~1\Java\JDK16~1.0_2\bin\java -client -Xms256m -Xmx512m -XX:CompileThreshold=8000 -XX:PermSize=48m -XX:MaxPermSize=128m -Dweblogic.Name=AdminServer -Djava.security.policy=C:\oracle\MIDDLE~1\11112~1.X\WLSERV~1.3\server\lib\weblogic.policy -Xverify:none -da -Dplatform.home=C:\oracle\MIDDLE~1\11112~1.X\WLSERV~1.3 -Dwls.home=C:\oracle\MIDDLE~1\11112~1.X\WLSERV~1.3\server -Dweblogic.home=C:\oracle\MIDDLE~1\11112~1.X\WLSERV~1.3\server -Dfile.encoding=UTF8 -Dfile.client.encoding=UTF8 -Dweblogic.management.discover=true -Dwlw.iterativeDev= -Dwlw.testConsole= -Dwlw.logErrorsToConsole= -Dweblogic.ext.dirs=C:\oracle\MIDDLE~1\11112~1.X\patch_wls1032\profiles\default\sysext_manifest_classpath;C:\oracle\MIDDLE~1\11112~1.X\patch_jdev1111\profiles\default\sysext_manifest_classpath weblogic.Server
<2010. 8. 19 오후 4시 19분 03초 KST> <Info> <WebLogicServer> <BEA-000377> <Starting WebLogic Server with Java HotSpot(TM) Client VM Version 17.0-b17 from Sun Microsystems Inc.>
<2010. 8. 19 오후 4시 19분 04초 KST> <Info> <Management> <BEA-141107> <Version: WebLogic Server 10.3.2.0 Tue Oct 20 12:16:15 PDT 2009 1267925 >
<2010. 8. 19 오후 4시 19분 06초 KST> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to STARTING>
<2010. 8. 19 오후 4시 19분 06초 KST> <Info> <WorkManager> <BEA-002900> <Initializing self-tuning thread pool>
<2010. 8. 19 오후 4시 19분 07초 KST> <Notice> <LoggingService> <BEA-320400> <The log file .....
PermGen space 에러.
잘 사용하다가 "java.lang.OutOfMemoryError" 에러가 나면서 서버가 뻣어 버리니는 경우가 많이 일어납니다...
이클립스가 뻣는게 아니라 웹로직 서버가 뻣는 것입니다.
이유는 여러가지가 있겠지만 어쨋든 메모리가 딸린겁니다... -_-;;
이때는 PerGen 사이즈를 늘려주면 좀 더 오래 버팁니다 ㅠㅠ
해결법 1)
웹로직을 직접 죽입니다. 작업관리자에서 웹로직을 띄우고 있는 java.exe 를 죽이면 됩니다.
해결법 2)
메모리 사이즈를 늘려서 좀 더 오래 버티게 하는 방법이 있습니다.
서버를 띄울때 로그를 잘 보면 처음에 아래와 같은 로그를 볼 수 있습니다.
C:\PROGRA~1\Java\JDK16~1.0_2\bin\java -client -Xms256m -Xmx512m -XX:CompileThreshold=8000 -XX:PermSize=48m -XX:MaxPermSize=128m ....
이 크기를 늘려주면 됩니다.
이클립스와 연결된 도메인 폴더로 이동합니다. (이하 %DOMAIN_HOME%)
%DOMAIN_HOME%\bin\setDomainEnv.cmd 파일을 수정합니다.
187 라인 쯤에 변경할 수 있는 부분이 있습니다.
아래의 값을 변경하면 됩니다. 자신의 OS 비트에 따라 변경하세요~
set MEM_MAX_PERM_SIZE_32BIT=-XX:MaxPermSize=128m
'Server > WebLogic' 카테고리의 다른 글
| Eclipse + WebLogic 추가 설정 사항들... (4) | 2011/08/23 |
|---|---|
| 웹로직 ZIP 배포판 설치 (윈도우) (0) | 2011/07/14 |
| WebLogic EJB의 Entity Bean에서 Oracle Sequence 사용하기 (0) | 2009/05/03 |
| WebLogic 10.3 JDBC 설정(DataSource) (12) | 2009/04/18 |
| Eclipse + WebLogic 10.3 (16) | 2009/03/15 |
| Domain 생성 및 테스트 (1) | 2009/03/14 |
-
잘 봤습니다. 다음 아래 사항 설정 할때 주의하세요
set JAVA_PROPERTIES=-Dplatform.home=%WL_HOME% -Dwls.home=%WLS_HOME% -Dweblogic.home=%WLS_HOME%
-Dfile.encoding=UTF8 -Dfile.client.encoding=UTF8
를 그대로 붙여넣게 되면 다음줄로 내려가게 되는데...
한줄에 다 써주어야 합니다 ^^
jquery.ui.datepicker.js