# 테스트 환경

  • OS : Oracle Linux Server release 8.6
  • JDK : 1.8
  • WebLogic ver. : 12cR2

# start script

- startA.sh

USER_NAME=
SERVER_NAME=AdminServer
SERVER_PORT=7001
DOMAIN_HOME=
DOAMIN_NAME=
BOOT_PROPERTIES=${DOMAIN_HOME}/boot.properties
LOG_DIR=${DOMAIN_HOME}/logs/${SERVER_NAME}
GC_LOG_DIR=${LOG_DIR}/gc
LOG_TIME=`date +%y%m%d_%H%M`
 
# Check User Name
IAM=`id -un`
# Check Startup User Check
if [ $USER_NAME != $IAM ] ; then
 echo "Error : This user is \"$IAM\". Please login as a \"$USER_NAME\"
user."
 exit
fi

# Check Process Check
PID=`ps -ef | grep java | grep ${SERVER_NAME} | grep ${SERVER_PORT} | awk '{print $2}'`
if [ "$PID" != "" ] ; then
 echo "ERROR : \"${SERVER_NAME}\" server is already running!!"
 exit
fi

##gc log rotation##
USER_MEM_ARGS="${USER_MEM_ARGS} -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -Xloggc:${GC_LOG_DIR}/gc_${SERVER_NAME}.out"
mv ${GC_LOG_DIR}/gc_${SERVER_NAME}.out ${GC_LOG_DIR}/gc_${SERVER_NAME}.out.${LOG_TIME}
###################

##heap dump##
USER_MEM_ARGS="${USER_MEM_ARGS} -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=${LOG_DIR}/heapdump"
#############

USER_MEM_ARGS="${USER_MEM_ARGS} -Xms1024m -Xmx1024m -XX:MetaspaceSize=512m  -XX:MaxMetaspaceSize=512m"
USER_MEM_ARGS="${USER_MEM_ARGS} -Dweblogic.threadpool.MinPoolSize=200 -Dweblogic.threadpool.MaxPoolSize=400"
USER_MEM_ARGS="${USER_MEM_ARGS} -Dweblogic.wsee.skip.async.response=true -Dserver.name=${SERVER_NAME} -Dserver.port=${SERVER_PORT}"
USER_MEM_ARGS="${USER_MEM_ARGS} -Djava.net.preferIPv4Stack=true -Djava.net.preferIPv6Addresses=false"
USER_MEM_ARGS="${USER_MEM_ARGS} -D_Offline_FileDataArchive=true -Dweblogic.connector.ConnectionPoolProfilingEnabled=false -Dcom.bea.wlw.netui.disableInstrumentation=true"
export USER_MEM_ARGS

JAVA_OPTIONS="${JAVA_OPTIONS} -Dweblogic.system.BootIdentityFile=${BOOT_PROPERTIES} -Djava.security.egd=file:/dev/./urandom"
export JAVA_OPTIONS

mv ${LOG_DIR}/${SERVER_NAME}.out ${LOG_DIR}/${SERVER_NAME}.out.${LOG_TIME}
nohup ${DOMAIN_HOME}/bin/startWebLogic.sh > ${LOG_DIR}/${SERVER_NAME}.out 2>&1 &
sleep 1
tail -f ${LOG_DIR}/${SERVER_NAME}.out

 

 

- startM1.sh

USER_NAME=
SERVER_NAME=M1
SERVER_PORT=7002
DOMAIN_HOME=
DOMAIN_NAME=
LOG_DIR=${DOMAIN_HOME}/logs/${SERVER_NAME}
BOOT_PROPERTIES=${DOMAIN_HOME}/boot.properties
GC_LOG_DIR=${LOG_DIR}/gc
ADMIN_URL=t3://192.168.56.210:7001
LOG_TIME=`date +%y%m%d_%H%M`

##mkdir logs##
if [ ! -f $LOG_DIR ]; then
        mkdir -p $LOG_DIR
fi

if [ ! -f $GC_LOG_DIR ]; then
        mkdir -p $GC_LOG_DIR
fi

# Check User Name
IAM=`id -un`
# Check Startup User Check
if [ $USER_NAME != $IAM ] ; then
 echo "Error : This user is \"$IAM\". Please login as a \"$USER_NAME\" user."
 exit
fi

# Check Process Check
PID=`ps -ef | grep java | grep ${SERVER_NAME} | grep ${SERVER_PORT} | awk '{print $2}'`
if [ "$PID" != "" ] ; then
echo "ERROR : \"${SERVER_NAME}\" server is already running!!"
 exit
fi

##### gc log rotation #####
USER_MEM_ARGS="${USER_MEM_ARGS} -verbose:gc -Xloggc:${GC_LOG_DIR}/gc_${SERVER_NAME}.out"
mv ${GC_LOG_DIR}/gc_${SERVER_NAME}.out ${GC_LOG_DIR}/gc_${SERVER_NAME}.out.${LOG_TIME}
######################

##### heap dump #####
USER_MEM_ARGS="${USER_MEM_ARGS} -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=${LOG_DIR}/heapdump"
######################

USER_MEM_ARGS="${USER_MEM_ARGS} -Xms1024m -Xmx1024m -XX:MetaspaceSize=512m  -XX:MaxMetaspaceSize=512m"
USER_MEM_ARGS="${USER_MEM_ARGS} -Dweblogic.threadpool.MinPoolSize=200 -Dweblogic.threadpool.MaxPoolSize=400"
USER_MEM_ARGS="${USER_MEM_ARGS} -Dweblogic.wsee.skip.async.response=true -Dserver.name=${SERVER_NAME} -Dserver.port=${SERVER_PORT}"
USER_MEM_ARGS="${USER_MEM_ARGS} -Djava.net.preferIPv4Stack=true -Djava.net.preferIPv6Addresses=false"
USER_MEM_ARGS="${USER_MEM_ARGS} -D_Offline_FileDataArchive=true -Dweblogic.connector.ConnectionPoolProfilingEnabled=false -Dcom.bea.wlw.netui.disableInstrumentation=true"
export USER_MEM_ARGS

JAVA_OPTIONS="${JAVA_OPTIONS} -Dweblogic.system.BootIdentityFile=${BOOT_PROPERTIES} -Djava.security.egd=file:/dev/./urandom"
export JAVA_OPTIONS

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 &
sleep 1
tail -f $LOG_DIR/$SERVER_NAME.out

 

# stop script

- stop.py

connect(url=sys.argv[1])
shutdown(force='true')
exit()

 

 

- stopA.sh

SERVER_URL=t3://SERVER_IP:ADMIN_SERVER_PORT
. ./bin/setDomainEnv.sh
java weblogic.WLST stop.py ${SERVER_URL}

 

 

- stopM1.sh

SERVER_URL=t3://SERVER_IP:INSTANCE_SERVER_PORT
. ./bin/setDomainEnv.sh
java weblogic.WLST stop.py ${SERVER_URL}

 

 

# 주의 사항

WebLogic 11g 와 12c에서 사용하는 script에는 차이점이 존재

 

11g → 주로 jdk 1.7을 사용

USER_MEM_ARGS="${USER_MEM_ARGS} -Xms1024M -Xmx1024M -XX:PermSize=256M -XX:MaxPermSize=512M -verbose:gc"

 

메모리 설정 부분에서 jdk 1.7은 PermSize를 사용

 

 

12c → 주로 jdk 1.8을 사용

USER_MEM_ARGS="${USER_MEM_ARGS} -Xms1024m -Xmx1024m -XX:MetaspaceSize=512m  -XX:MaxMetaspaceSize=512m"

 

jdk 1.7에서 1.8로 넘어오며 Permanent Generation 메모리 영역이 없어지고 Metaspace 영역이 새로 생김

 

따라서 1.8에서는 PermSize가 아닌 MetaspaceSize 태그를 사용

'WAS > WebLogic' 카테고리의 다른 글

Application 이슈 있을 때 확인 사항  (0) 2024.09.23
WebLogic Admin ID/PW 변경 및 복호화  (1) 2024.07.16
WebLogic Log 설정  (1) 2024.07.12
boot.properties 암호화  (0) 2024.07.12
WebLogic 12.2.1.4 설치 가이드  (1) 2024.07.12

# 테스트 환경

  • OS : Oracle Linux Server release 8.6
  • JDK : 1.8
  • WebLogic ver. : 12cR2

# boot.properties

weblogic에서 어드민 및 인스턴스 서버들을 보다 쉽게 시작할 수 있도록 도와주는 weblogic id / pw가 담긴 파일

 

서버들이 시작 또는 중지되게 위해서는 사용자 자격 증명을 거쳐야 하는데 boot.properties 파일이 해당 인증을 자동으로 통과시켜 주는 역할을 함

 

 

# boot.properties 암호화

최초에 startWebLogic.sh 스크립트를 실행하고 weblogic id, pw 입력한 후 admin server 실행이 완료가 되면

{WEBLOGIC_DOMAIN} 경로에 servers 디렉터리가 생성됨

도메인 경로의 servers 디렉터리

 

해당 폴더를 통해 boot.properties 암호화를 진행

 

1. {DOMAIN_HOME}/servers/AdminServer 디렉터리로 이동하여 security 디렉터리 생성

 

2. security 디렉터리 안에 boot.properties 파일을 만들고 vi로 편집

vi boot.properties

username=weblogic id 입력
password=weblogic paaaword 입력

:wq

 

3. 다시 {DOMAIN_HOME} 경로로 이동하여 startWebLogic.sh 스크립트 실행

<Jul 12, 2024 11:22:21,068 AM KST> <Notice> <WebLogicServer> <BEA-000360> <The server started in RUNNING mode.>
<Jul 12, 2024 11:22:21,072 AM KST> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to RUNNING.>

 

4. {DOMAIN_HOME}/servers/AdminServer/security 디렉터리 내의 boot.properties 파일 확인

#Fri Jul 12 11:21:57 KST 2024
password={AES256}PHmwvBKZ/rCZm5u9XDR/9iJArzxxR+99u2cBvgi+Bgw\=
username={AES256}0n/GMwMhhzShCw/vIR9UPbU2Mp6ruThF6u9THP0naUE\=

 

→ 원문이었던 username과 password가 암호화된 것 확인 가능

'WAS > WebLogic' 카테고리의 다른 글

Application 이슈 있을 때 확인 사항  (0) 2024.09.23
WebLogic Admin ID/PW 변경 및 복호화  (1) 2024.07.16
WebLogic Log 설정  (1) 2024.07.12
start / stop script  (0) 2024.07.12
WebLogic 12.2.1.4 설치 가이드  (1) 2024.07.12

# 테스트 환경

  • OS : Oracle Linux Server release 8.6
  • JDK : 1.8
  • WebLogic ver. : 12cR2

# 디렉터리 구조

  • WebLogic engine : /sw/test/weblogic
  • Inventory dir : /sw/test/oraInventory
  • Install files dir : /sw/test/install_files

# 설치 과정

1. 설치 관련 파일 준비

 

oraInst.loc

→ weblogic을 설치할 계정의 그룹 지정과 설치 과정 중 발생할 로그 및 정보들을 저장할 inventory 경로를 지정하는 파일

inst_group=oracle
inventory_loc=/sw/test/oraInventory

 

 

weblogic.rsp

→ 해당 response 파일을 기반으로 weblogic engine이 설치되게 됨

[ENGINE]
#DO NOT CHANGE THIS.
Response File Version=1.0.0.0.0

[GENERIC]
DECLINE_AUTO_UPDATES=true
ORACLE_HOME=/sw/test/weblogic
INSTALL_TYPE=WebLogic Server

 

2. silent 모드로 engine 설치 진행

Weblogic의 경우 openjdk로는 설치가 불가능하기 때문에 반드시 oracle jdk를 사용하여 설치 진행

/usr/java/jdk1.8.0_321/bin/java -jar fmw_12.2.1.4.0_wls_lite_generic.jar -silent -invPtrLoc /sw/test/install_files/oraInst.loc -responseFile /sw/test/install_files/weblogic.rsp

 

loc, rsp 파일을 참조하여 설치를 진행

weblogic 12.2.1.4 silent모드로 engine 설치 과정 및 결과

 

Weblogic 초기 engine 디렉토리 구조

 

3. Domain 생성

weblogic에서 domain은

weblogic server 인스턴스의 기본 관리 단위로써 도메인 관리 역할을 하는 admin server와 하나 이상의 instance server로 구성

 

도메인은 /{WEBLOGIC_ENGINE}/oracle_common/common/bin 디렉터리의 wlst.sh을 이용하여 생성을 진행

 

domain.py

→ wlst 스크립트를 실행시켜 커멘드를 한 줄씩 작성해도 되지만 미리 생성할 도메인에 대한 모든 커멘드를 작성하여

도메인 생성을 용이하게 하기 위한 파일

readTemplate('/sw/test/weblogic/wlserver/common/templates/wls/wls.jar');
setOption('JavaHome', '/usr/java/jdk1.8.0_321');
setOption('ServerStartMode', 'prod')
cd('Security/base_domain/User/weblogic');
set('Name', 'weblogic');
cmo.setPassword('weblogic1);
cd('Servers/AdminServer');
set('Name','AdminServer');
set('ListenAddress','');
set('ListenPort',7001);
cd('/');
writeDomain('/sw/test/weblogic/domains/test12214');
closeTemplate();
exit();

 

 

./wlst.sh ./domain.py

[oracle@was bin]$ ./wlst.sh ./domain.py

Initializing WebLogic Scripting Tool (WLST) ...

Welcome to WebLogic Server Administration Scripting Shell

Type help() for help on available commands



Exiting WebLogic Scripting Tool.

 

domain.py를 기반으로 설치된 도메인 경로 확인

 

4. AdminServer 실행 및 console 설정

도메인 생성 후 어드민 서버 최초 실행

 

./startWebLogic.sh

최초 실행이기 때문에 weblogic id / pwd 입력

[oracle@was test12214]$ ./startWebLogic.sh
.
.
JAVA Memory arguments: -Xms256m -Xmx512m
.
.
.
***************************************************
*  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 WLS with line:
/usr/java/jdk1.8.0_321/bin/java -server   -Xms256m -Xmx512m  -cp /sw/test/weblogic/wlserver/server/lib/weblogic-launcher.jar -Dlaunch.use.env.classpath=true -Dweblogic.Name=AdminServer -Djava.security.policy=/sw/test/weblogic/wlserver/server/lib/weblogic.policy  -Dweblogic.ProductionModeEnabled=true  -Djava.system.class.loader=com.oracle.classloader.weblogic.LaunchClassLoader  -javaagent:/sw/test/weblogic/wlserver/server/lib/debugpatch-agent.jar -da -Dwls.home=/sw/test/weblogic/wlserver/server -Dweblogic.home=/sw/test/weblogic/wlserver/server      weblogic.Server
.
.
.
<Jul 12, 2024 10:32:14 AM KST> <Info> <Security> <BEA-090065> <Getting boot identity from user.>
Enter username to boot WebLogic server:weblogic
Enter password to boot WebLogic server:
.
.
.
<Jul 12, 2024 10:32:59,554 AM KST> <Notice> <WebLogicServer> <BEA-000360> <The server started in RUNNING mode.>
<Jul 12, 2024 10:32:59,563 AM KST> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to RUNNING.>

 

http://IP:PORT/console 입력 후 weblogic console 호출 후 id, pwd 입력하여 console 로그인

(port 번호 뒤에 반드시 /console 를 붙여준 후 호출)

 

weblogic 12.2.1.4 console 로그인 화면

 

weblogic 12.2.1.4 console 로그인 - 서버 화면

 

5. instance server 생성

weblogic console - 잠금 및 편집 - 환경 - 서버 - 새로만들기

 

서버 이름 , 서버 수신 주소 , 서버 수신 포트 입력 후 완료 클릭

 

생성한 instance server 확인

 

'WAS > WebLogic' 카테고리의 다른 글

Application 이슈 있을 때 확인 사항  (0) 2024.09.23
WebLogic Admin ID/PW 변경 및 복호화  (1) 2024.07.16
WebLogic Log 설정  (1) 2024.07.12
start / stop script  (0) 2024.07.12
boot.properties 암호화  (0) 2024.07.12

+ Recent posts