2011년 11월 21일 월요일

[weblogic]JAVA HOME이 바뀌었을경우

JAVA HOME이 바뀌었을경우

2개의 파일의 설정부분을 변경해야 됩니다.

아래의 경로의 commEnv.sh 파일을 VI로 열어 편집해야 됩니다.
/u/weblogic/wlserver_10.3/common/bin/commEnv.sh

다음 부분을 찾아서 붉은색 부분을 고쳐 주세요.


# Set up JAVA HOME
  JAVA_HOME="/opt/java6" 바뀐 절대경로를 입력하면 됩니다.



아래의 경로의 setDomainEnv.sh 파일을 VI로 열어 편집해야 됩니다.

/u/weblogic/user_projects/domains/tsaDomain/bin/setDomainEnv.sh

다음 부분을 찾아서 붉은색 부분을 고쳐 주세요.
BEA_JAVA_HOME=""
export BEA_JAVA_HOME

SUN_JAVA_HOME=""
export SUN_JAVA_HOME

if [ "${JAVA_VENDOR}" = "Oracle" ] ; then
        JAVA_HOME="${BEA_JAVA_HOME}"
        export JAVA_HOME
else
        if [ "${JAVA_VENDOR}" = "Sun" ] ; then
                JAVA_HOME="${SUN_JAVA_HOME}"
                export JAVA_HOME
        else
                JAVA_VENDOR="Unknown"
                export JAVA_VENDOR
                JAVA_HOME="/opt/java6" 바뀐 절대경로를 입력하면 됩니다.
                export JAVA_HOME
        fi
fi

[weblogic]JVM -server -client 옵션

JVM -server -client 옵션

JVM에는 일반적으로 server client 두가지 옵션을 제공한다.
결론만 말하면 server 옵션은 WAS와 같은 Server환경에 최적화된 옵션이고, client옵션은 워드프로세서와 같은client application에 최적화된 옵션이다. 그냥 언뜻 보기에는 단순한 옵션 하나로보일 수 있지만, 내부에서 돌아가는hotspot compiler에 대한 최적화 방법과 메모리 구조자체가 아예 틀리다.

-server 옵션

server application에 최적화된 옵션이다. Server application boot up 시간 보다는 user에 대한response time이 중요하고, 많은 사용자가 동시에 사용하기 때문에 session등의 user data를 다루는게일반적이다. 그래서 server 옵션으로 제공되는 hotspot compiler java application을 최적화 해서빠른 response time을 내는데 집중되어 있다.

또한 메모리 모델 역시, 서버의 경우에는 특정 사용자가 서버운영시간동안 계속 서버를 사용하는게 아니기 때문에 (Login하고, 사용한 후에는 Logout되기 때문에..) 사용자에 관련된객체들이 오래 지속되는 경우가 드물다. 그래서 상대적으로 Old영역이 작고 New 영역이 크게 배정된다. <그림 7. 참조>

-client 옵션

client application은 워드프로세서 처럼 혼자사용하는 application이다. 그래서 client application response time보다는 빨리 기동되는데에최적화가 되어 있다. 또한대부분의 client application을 구성하는 objectGUI Component와 같이application이 종료될때까지 남아있는 object의 비중이 높기 때문에 상대적으로 Old 영역의 비율이 높다.




<그림 7. -server -client 옵션에 따른 JVM Old New영역>



이 두옵션은 가장 간단한 옵션이지만, JVM의 최적화에 아주 큰부분을 차지하고 있는 옵션이기 때문에, 반드시 Application의 성격에 맞춰서 적용하기 바란다.
(※ 참고로, SUN JVM default client, HPJVM default server로 세팅되어 있다.)

[weblogic]startA.cmd--windows 버전

rem @ECHO OFF
rem # AdminServer_start_script

set SERVER_NAME=AdminServer
set ADMIN_ADDRESS=127.0.0.1:7001
set DOMAIN_HOME=C:\Oracle\weblogic\domains\domain11g

rem # log directory

set LOG_HOME=%DOMAIN_HOME%\logs
set NOHUP_LOG_HOME=%LOG_HOME%\nohup
set GC_LOG_HOME=%LOG_HOME%\gc

rem # time setting

for /f "tokens=1-4 delims=/ " %%i in ('date /t') do set date=%%i%%j%%k%%l
for /f "tokens=1-3 delims=: " %%i in ('time /t') do set time=%%i-%%j-%%k
set datetime=%date%.%time%

rem # log file

set STD_LOG=%SERVER_NAME%_stdout.log
set NOHUP_LOG=nohup_%SERVER_NAME%_%datetime%_stdout.log
set GC_LOG=gc_%SERVER_NAME%_%datetime%.log

TITLE Server Name : %SERVER_NAME%

rem # set mem_args

set USER_MEM_ARGS=-D%SERVER_NAME%
set USER_MEM_ARGS=%USER_MEM_ARGS% -Xms512m -Xmx512m -XX:NewSize=192m -XX:MaxNewSize=384m -XX:PermSize=128m -XX:MaxPermSize=256m
set USER_MEM_ARGS=%USER_MEM_ARGS% -verbose:gc -Xloggc:%GC_LOG_HOME%\%GC_LOG%
set USER_MEM_ARGS=%USER_MEM_ARGS% -Dweblogic.system.BootIdentityFile=%DOMAIN_HOME%\boot.properties
set USER_MEM_ARGS=%USER_MEM_ARGS% -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintHeapAtGC
set USER_MEM_ARGS=%USER_MEM_ARGS% -XX:+HeapDumpOnOutOfMemoryError
set USER_MEM_ARGS=%USER_MEM_ARGS% -D_Offline_FileDataArchive=true
set USER_MEM_ARGS=%USER_MEM_ARGS% -Dweblogic.connector.ConnectionPoolProfilingEnabled=false
set USER_MEM_ARGS=%USER_MEM_ARGS% -Dcom.bea.wlw.netui.disableInstrumentation=true
set USER_MEM_ARGS

rem # log_rotation

mkdir %GC_LOG_HOME% %NOHUP_LOG_HOME%
move %NOHUP_LOG_HOME%\%STD_LOG% %NOHUP_LOG_HOME%\%NOHUP_LOG%

rem # start_weblogic

rem # START /B %DOMAIN_HOME%\bin\startWebLogic.cmd >> %NOHUP_LOG_HOME%\%STD_LOG% 2>&1
START /B %DOMAIN_HOME%\bin\startWebLogic.cmd

rem %DOMAIN_HOME%\wintail -f %NOHUP_LOG_HOME%\%STD_LOG%

[weblogic]웹로직설치 관련

웹로직설치 실행 명령어

[/usr/java6/bin/java] [-jar] [-Djava.io.tmpdir=./tmp] [wls1035_generic.jar] [-mode=console]
[자바경로]            [옵션] [임시디렉토리 지정]      [실행파일명]          [모드지정] 

*메모리 옵션을 추가 할 수 있다.
/usr/java5_64/bin/java -Xms1024m -Xmx1024m -jar -Djava.io.tmpdir=./tmp server1002_generic.jar -mode=console


*windows 에서 명령어

C:\Oracle\WebServer7\jdk\bin\java -jar wls1035_genric.jar --console



도메인 실행 명령어
/ofmfs/user/ysyun/weblogic/wlserver_10.3/common/bin



실행할 파일 위치
weblogic engine홈/bin

./config.sh -mode=console
실행할 파일및 모드설정


startA.sh만들기
- 해당쉘을 수정한다.



도메인 홈에 만들것
vi boot.properties
password=12345678
username=weblogic

weblogic11g 일때

boot.properties 파일을 기동시 reference하기 위해서는 아래 ajva옵션을 추기시켜야 한다.

유닉스에서는 DOMAIN_HOME/bin/setDomainEnv.sh 에 JAVA옵션 명령문이 끝나기전에 추가해야함

JAVA_OPTIONS="-Dweblogic.system.BootIdentityFile=${DOMAIN_HOME}/boot.properties ${JAVA_OPTIONS}"


AdminStration Console 설정

testdomain [도메인이름]
Environment에서 servers클릭
AdminServer(admin) 클릭
Logging클릭
Lock&Edit 클릭하고 설정 변경

Rotation type:        byTime
Begin rotation time:  23:59
Rotation interval:    24
Files to retain:      30

Advanced 클릭해서

Log file:
serverity level :info

Standard Out:
Serverity level:  info

Domain log broadcaster:
Sevrity : off

Buffer Size : 10

Memory buffer:
severity level : off

저장하고 Http로 넘어감



weblogic sample application create command



mkdir webapp
cd webapp
mkdir WEB-INF
pwd
./webapp
java weblogic.marathon.ddinit.WebInit .

java -cp /weblogic/wls11/wlserver_10.3/server/lib/weblogic.jar weblogic.marathon.ddinit.WebInit .
   직접 경로지정을 할수도 있다.

/ofmfs/user/ysyun/domains/domain11g/bin/setDomainEnv.sh
안되면 직접 만들어서 하면 된다.

http://111.111.111.111:1111/webapp/index.jsp 어플리케이션 동작확인


웹서버와의 연동
-해당 서버의 연동방법 참조

[weblogic]boot.properties 파일 만들기

웹로직 기동시 계정과 암호 넣기 귀찮을때 사용함


password=12345678   8자리로 해야됨
username=weblogic


윈도우에서 메모장으로 저장시 인코딩 방법을 ANSI, 유니코드로만 저장할것 나머지는 에러남




boot.properties 파일을 기동시 reference하기 위해서는 아래 ajva옵션을 추기시켜야 한다.



DOMAIN_HOME/startA.sh
-Dweblogic.system.BootIdentityFile=${DOMAIN_HOME}/boot.properties


DOMAIN_HOME/bin/setDomainEnv.sh 에 JAVA옵션 명령문이 끝나기전에 추가해야함

JAVA_OPTIONS="-Dweblogic.system.BootIdentityFile=${DOMAIN_HOME}/boot.properties ${JAVA_OPTIONS}"





---------------------------------------------------------------------------------

vi setDomainEnv.sh


if [ "${WEBLOGIC_EXTENSION_DIRS}" != "" ] ; then
        JAVA_OPTIONS="${JAVA_OPTIONS} -Dweblogic.ext.dirs=${WEBLOGIC_EXTENSION_DIRS}"
        export JAVA_OPTIONS
fi


JAVA_OPTIONS="-Dweblogic.system.BootIdentityFile=${DOMAIN_HOME}/boot.properties ${JAVA_OPTIONS}"      -------이쯤에다 집어넣어야 됨

JAVA_OPTIONS="${JAVA_OPTIONS}"
export JAVA_OPTIONS

# SET THE CLASSPATH

if [ "${WLP_POST_CLASSPATH}" != "" ] ; then
        if [ "${CLASSPATH}" != "" ] ; then
                CLASSPATH="${WLP_POST_CLASSPATH}${CLASSPATHSEP}${CLASSPATH}"



----------------------------------------------------------------------------------

[JVM] GC로그 Simple Option

[SUN]
-XX:+PrintGCDetails
-XX:+PrintGCTimeStamps
-XX:+PrintHeapAtGC
-verbosegc
-Xloggc:/home/javagosu/logs/gclog.log

[IBM]
-verbose:gc
*가베지컬렉션 작업내역을 로그에 남기는 옵션
-Xverbosegclog:/home/javagosu/logs/gclog.log
*실제사용 예 Xverbosegclog:${USERLOG_HOME}/gc/gc_${SERVER_NAME}_${GCDATE}.out"
-Xgcpolicy:gencon
* 젠컨 정책인데 알아보자 나중에
-Xgcpolicy: : optthruput|optavgpause|gencon|subpool.
*Garbage Collector의 종류(따라서 Heap 관리의 종류)를 결정한다. 

[HP]
-verbosegc
-Xloggc:/home/javagosu/logs/gclog1.log
-Xverbosegc:file=/home/javagosu/logs/gclog2.log (only HP)

[weblogic]웹로직11g 32bit--->64bit

웹로직 엔진홈 아래에 /common/bin/commEnv.sh

# Setup SUN_ARCH_DATA_MODEL
SUN_ARCH_DATA_MODEL="32"      ;# 32 -> 64

#JAVA_USE_64BIT, true if JVM uses 64 bit operations
JAVA_USE_64BIT=false          ;# false -> true