#01. JDK 호환 정보
Oracle JDK
- Oracle JDK 1.6.0_35+
- Oracle JDK 1.7.0_07+
IBM JDK
- 1.6 이상
#02. 서버 엔진 설치
설치 실행 명령어 예시
$ export LANG=C
$ /usr/jdk/jdk1.7/jdk1.7.0_80/bin/java -jar wls1036_generic.jar -mode=console -Djava.io.tmpdir=/weblogic/weblogic10/tmp
Djava.io.tmpdir 옵션 역할
-Djava.io.tmpdir=
웹로직 jar 파일을 설치하면 압축이 기본적으로 /tmp 경로에 풀리게 되는데
/tmp의 공간이 부족할 경우 다른 경로로 변경하는 용도
상세 절차는 아래 파일 다운로드하여 확인
이미지01
=> 이미지 참고하여 서버 설치 명령어 실행
이미지02
=> Create a new Middleware Home 선택
이미지03
=> weblogic 설치 할 디렉토리 입력
이미지04
=>Security Update를 비활성화
=> 3 -> no -> yes 순으로 입력
이미지05
=> Receive Security Update No 확인 후 다음으로
이미지06
=> 설치할 제품 선택 화면
=> 2번 선택
이미지07
=> Oracle Coherence는 불필요합니다.
=> 2번 입력 후 엔터
이미지08
=> Oracle Coherence 텍스트 우측의 x 표시 없어진 것 확인 후 다음으로
이미지09
=> JDK 경로 확인 후 다음으로
이미지10
=> weblogic 설치 경로 확인
=> Oracle Coherence 설치하지 않는 것 확인
이미지11
=> 설치 완료. Domain 구성으로 이동
#03. Domain 구성
01. console mode
해당 방법으로 domain 구성하는 것이 간편하다.
상세 절차는 아래 파일 다운로드하여 확인.
이미지01
=> {서버설치디렉토리}/wlserver_10.3/common/bin 으로 이동
=> 이미지 참고하여 domain 구성 명령어 실행
이미지02
=> Create a new WebLogic domain 선택
이미지03
=> Choose Weblogic Platform components 선택
=> Templates 선택 창에서는 바로 엔터 입력
이미지04
=> 도메인 이름 입력
이미지05
=> 도메인 디렉토리가 생성될 경로 지정
=> 경로의 맨 뒤에 도메인 이름까지 작성하면 안된다
이미지06
=> user 명과 password 설정하는 화면
=> 1, 2, 3, 순으로 설정 후 엔터 입력하여 다음 화면으로
이미지07
=> Production Mode 선택
=> JDK 경로 확인
이미지08
=> 도메인의 서버를 구성합니다.
=> 이미지에서는 필수로 생성해야 하는 Admin Server만 만들도록 선택
=> Managed Server는 Admin Console 에서 생성하는 것이 더 간편하고 안전하다
이미지09
=> Admin Server 구성 예시
=> 구성 완료 후 엔터 입력하여 다음 화면으로
이미지10
=> 도메인 생성 완료
=> Admin Server 기동하여 Admin console 접속 후 Managed Server 생성
02. slient mode
console 모드가 보다 간편하므로 꼭 필요한 경우에만 사용하도록 한다.
$ cd {WEBLOGIC_HOME}/oracle_common/common/bin
$ ./wlst.sh domain.py
(domain.py 예시)
readTemplate("/was/wls1036/common/templates/domains/wls.jar")
setOption('JavaHome', '/usr/java_1.7.0_80');
setOption('ServerStartMode', 'prod')
cd('Security/base_domain/User/weblogic');
set('Name', '유저명');
cmo.setPassword('패스워드');
cd('Servers/AdminServer')
set('Name','어드민서버명');
set('ListenAddress','IP주소')
set('ListenPort', 포트번호)
cd('/');
writeDomain('/was/domains/도메인명');
closeTemplate();
exit();
#04. 기동 정지 스크립트 (Oracle JAVA 기준)
(boot.properties)
username=유저명
password=패스워드
AdminServer 기동 스크립트 (startA.sh)
##### server info #####
DOMAIN_NAME=ehc_domain
SERVER_NAME=AdminServer
SERVER_PORT=9010
BOOT_PROPERTIES=${DOMAIN_HOME}/boot.properties
DOMAIN_HOME={도메인경로}
SERVER_NAME={서버명}
SERVER_PORT={포트번호}
BOOT_PROPERTIES=${DOMAIN_HOME}/boot.properties
#------------------------------------------------------------------------------------
##### user & process check #####
#user check
USER=`whoami`
if [ "$USER" != "midadm" ]
then
echo =============================================
echo You are not weblogic user, Please change user
echo =============================================
exit
fi
#process running check
PID=`ps -ef|grep java|grep ${SERVER_NAME}|awk '{print $2}'`
if [ "$PID" != "" ]
then
echo ==============================================
echo "${SVR}"_[pid:"${PID}"] Process Is Already Running !!!
echo ==============================================
exit
fi
#------------------------------------------------------------------------------------
##### server settings #####
#instance info
JAVA_OPTIONS="${JAVA_OPTIONS} -D${SERVER_NAME} -D${SERVER_PORT}"
#boot_properties
JAVA_OPTIONS="${JAVA_OPTIONS} -Dweblogic.system.BootIdentityFile=${BOOT_PROPERTIES}"
#urandom
JAVA_OPTIONS="${JAVA_OPTIONS} -Djava.security.egd=file:///dev/./urandom"
#ipv4 options
JAVA_OPTIONS="${JAVA_OPTIONS} -Djava.net.preferIPv4Stack=true"
#heap memory options
JAVA_OPTIONS="${JAVA_OPTIONS} -Xms1024m -Xmx1024m"
#--------------------------------------------------------------------------------------
##### log directory #####
#log_directory
LOG_DIR={로그파일 기록할 경로}
#log_time
LOG_TIME=$(date +"%Y%m%d_%H_%M")
#------------------------------------------------------------------------------------
##### server start #####
#export args
export USER_MEM_ARGS JAVA_OPTIONS
#stdout log_backup
mv ${LOG_DIR}/stdout/${SERVER_NAME}.out ${LOG_DIR}/stdout/${SERVER_NAME}.out_${LOG_TIME}
#server_start
nohup ${DOMAIN_HOME}/bin/startWebLogic.sh >> ${LOG_DIR}/stdout/${SERVER_NAME}.out 2>&1 &
#tail -f $LOG_DIR/$SERVER_NAME.out
ManagedServer 기동 스크립트 (startM.sh)
##### server info #####
DOMAIN_HOME={도메인경로작성}
SERVER_NAME={서버명작성}
ADMIN_SERVER_IP=192.168.55.169
ADMIN_SERVER_PORT=9001
ADM_URL="t3://${ADMIN_SERVER_IP}:${ADMIN_SERVER_PORT}"
BOOT_PROPERTIES=${DOMAIN_HOME}/boot.properties
#--------------------------------------------------------------------------------------
##### user & process check #####
#user check
USER=`whoami`
if [ "$USER" != "midadm" ]
then
echo =============================================
echo You are not weblogic user, Please change user
echo =============================================
exit
fi
#process running check
PID=`ps -ef|grep java|grep ${SERVER_NAME}|awk '{print $2}'`
if [ "$PID" != "" ]
then
echo ==============================================
echo "${SVR}"_[pid:"${PID}"] Process Is Already Running !!!
echo ==============================================
exit
fi
#--------------------------------------------------------------------------------------
##### server settings #####
#instance info
JAVA_OPTIONS="${JAVA_OPTIONS} -D${SERVER_NAME} -D${SERVER_PORT}"
#boot_properties
JAVA_OPTIONS="${JAVA_OPTIONS} -Dweblogic.system.BootIdentityFile=${BOOT_PROPERTIES}"
#urandom
JAVA_OPTIONS="${JAVA_OPTIONS} -Djava.security.egd=file:///dev/./urandom"
#ipv4 options
JAVA_OPTIONS="${JAVA_OPTIONS} -Djava.net.preferIPv4Stack=true"
#heap memory options
JAVA_OPTIONS="${JAVA_OPTIONS} -Xms512m -Xmx512m"
#classpath
CLASSPATH="${CLASSPATH}"
#--------------------------------------------------------------------------------------
##### log directory #####
#log_directory
LOG_DIR={로그파일경로}
#log_time
LOG_TIME=$(date +"%Y%m%d_%H_%M")
#--------------------------------------------------------------------------------------
##### gc log & dump files #####
#gc_log
JAVA_OPTIONS="${JAVA_OPTIONS} -verbose:gc -Xloggc:${LOG_DIR}/gc/gc_${SERVER_NAME}.log"
JAVA_OPTIONS="${JAVA_OPTIONS} -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintHeapAtGC"
#heapdump options
JAVA_OPTIONS="${JAVA_OPTIONS} -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=${LOG_DIR}/dump_files/heapdump_${SERVER_NAME}.hprof"
#--------------------------------------------------------------------------------------
##### server start #####
#export args
export JAVA_OPTIONS USER_MEM_ARGS EXT_PRE_CLASSPATH LD_LIBRARY_PATH
#stdout log_backup
mv ${LOG_DIR}/stdout/${SERVER_NAME}.out ${LOG_DIR}/stdout/${SERVER_NAME}.out_${LOG_TIME}
#gc log backup
mv ${LOG_DIR}/gc/gc_${SERVER_NAME}.log ${LOG_DIR}/gc/gc_${SERVER_NAME}.log_${LOG_TIME}
#server_start
nohup ${DOMAIN_HOME}/bin/startManagedWebLogic.sh ${SERVER_NAME} ${ADM_URL} >> ${LOG_DIR}/stdout/${SERVER_NAME}.out 2>&1 &
#tail -f ${LOG_DIR}/${SERVER_NAME}.out
AdminServer 정지 스크립트 (stopA.sh)
#stop admin server
ADMIN_SERVER_IP=0.0.0.0
ADMIN_SERVER_PORT=0000
. ./bin/setDomainEnv.sh
java weblogic.Admin -url t3://${ADMIN_SERVER_IP}:${ADMIN_SERVER_PORT} -username 유저명 -password 패스워드 FORCESHUTDOWN
ManagedServer 정지 스크립트 (stopM.sh)
#stop managed server
MANAGED_SERVER_IP=0.0.0.0
MANAGED_SERVER_PORT=0000
. ./bin/setDomainEnv.sh
java weblogic.Admin -url t3://${MANAGED_SERVER_IP}:${MANAGED_SERVER_PORT} -username 유저명 -password 패스워드 FORCESHUTDOWN
#05. Log 설정
weblogic server 로그
- weblogic 서버 자체에서 기록하는 로그
- default 위치는 {DOMAIN_HOME}/servers/{INSTANCE_NAME}/로그파일.log
- 아래와 같이 설정하여 24시간 마다 순환하도록 하는 것이 일반적
로그 레벨은 아래와 같이 info / info / notice 로 설정하는 것이 일반적
weblogic access 로그
- weblogic에 deploy한 웹 어플리케이션에 들어오는 접속 내역을 기록하는 로그
- 아래와 같이 설정하여 24시간 마다 순환하도록 하는 것이 일반적
weblogic stdout 로그
- weblogic 서버 관련 모든 로그 + application 관련 로그
- 서버 기동 스크립트에서 설정한다
#server_start & stdout_log
LOG_DIR={경로작성}
LOG_TIME='date +%y%m%d_%H%M'
mv ${LOG_DIR}/${SERVER_NAME}.out ${LOG_DIR}/${SERVER_NAME}.out.${LOG_TIME}
nohup ${DOMAIN_HOME}/bin/startManagedWebLogic.sh ${SERVER_NAME} ${ADM_URL} > ${LOG_DIR}/${SERVER_NAME}.out 2>&1 &
stdout 로그 rotation
- 이를 24시간마다 순환시키기 위해서는 OS 측에서 별도의 설정이 필요하다
- crontab 을 통해 24시간마다 out 로그를 순환하도록 한다
- /etc/logrotate.d/{설정파일}
- copytruncate 옵션을 꼭 작성해야 함. 그렇지 않으면 로테이션 후 기존 로그 파일에 로그가 이어서 기록된다.
{로그경로}/{로그파일명}.out {
copytruncate
missingok
daily
create 0664 유저 그룹
rotate 30
dateext
}
#06. 성능 튜닝
heap memory 용량 튜닝
- 서버 기동 스크립트에서 수정한다
- Xms와 Xmx를 동일값으로 세팅한다. 동일값으로 세팅 되어야 시스템 부하가 적다.
- 아래 코드는 JDK 1.7 기준으로 작성한 것
#memory options
JAVA_OPTS="${USER_MEM_ARGS} -Xms512m -Xmx512m -XX:PermSize=128M -XX:MaxPermSize=128M"
thread 용량 튜닝
- 서버 기동 스크립트에서 설정하는 방법과
- weblogic config 파일 내에서 수정하는 방법이 있다
기동 스크립트 설정 방법
-Dweblogic.threadpool.MinPoolSize=100
-Dweblogic.threadpool.MaxPoolSize=200
config.xml 설정 방법
<server>
<self-tuning-thread-pool-size-min>100</self-tuning-thread-pool-size-min>
<self-tuning-thread-pool-size-max>200</self-tuning-thread-pool-size-max>
........
</server>
#07. 그 외 부가 설정들
"weblogic 플러그인 사용" 옵션
기본값은 비활성화로 되어있으나, 보통 활성화 하는 편이다.
체크 표시 하여 활성화 하도록 한다.신규 설치 시 참고 할 것
managed server 만 단독으로 구동하기 (MSI 모드)
- config.xml 에서 직접 설정하는 방법
#01. config 디렉토리 이동
../${DOMAIN_HOME}/config
#02. vi config.xml
아래와 같이 수정 (managed-server-independence-enabled 태그 추가)
<server>
<name>m1</name>
<listen-port>9001</listen-port>
<cluster>c1</cluster>
<listen-address>192.168.56.2</listen-address>
<jta-migratable-target>
<user-preferred-server>m1</user-preferred-server>
<cluster>c1</cluster>
</jta-migratable-target>
<managed-server-independence-enabled>true</managed-server-independence-enabled>
</server>
- Admin Console 에서 설정하는 방법
서버 메뉴 -> 구성 -> 튜닝 -> 고급 메뉴 -> "관리 서버 독립성 허용" 체크 표시
'WAS - WebLogic > 설치 (Linux)' 카테고리의 다른 글
[weblogic] 버전 별 Certification Matrix (0) | 2024.12.18 |
---|---|
[weblogic] 설치 가이드 | 12c/14c | Linux/Unix (0) | 2021.06.25 |
[weblogic] 설치 가이드 | 8.1.* | Linux/Unix (0) | 2021.06.08 |