SSISO Community

시소당

WebLogic Server install for linux

Creating a New (Additional) WLS Doma

 

in - for UNIX




자바스터디 네트워크 [www.javastudy.co.kr]

조지훈 [jcho_N_O_SPAM@j2eestudy.co.kr]




Introduction


이번 강좌에서는 새로운 웹로직 도메인을 추가 생성하는 방법에 대해 살펴보자.

Text-Based의 UNIX 환경과 기존에 도메인이 생성되어 있는 상황을 가정하여 강좌를 진행하겠지만, 몇 가지 특별한 설정을 제외하고는 Windows의 Command 환경 또는 생성된 기존 도메인이 없고 처음으로 도메인을 생성해야 하는 상황에서도 공통적으로 적용 가능한 내용이므로 정확히 알아두자.


Domain & Server Name Considerations


본 강좌에 들어가기에 앞서 먼저 고려해야 할 사항에 대해 말하고자 한다.

모든 Server Instance들은 하나의 WebLogic 환경 아래에서 절대 같은 이름으로 사용될 수 없다.
다시말해, 서로 다른 WebLogic Domain이나 Cluster에 놓여 있다 할지라도 각각의 Server(Administration Server이던 Managed Server이던), Machine, Cluster, Virtual Host 등 모든 Resource Type들은 동일한 WebLogic 환경 하에서 유일한(uniquely) 이름을 사용해야만 한다는 것이다.

마찬가지로 새로운 도메인을 생성할 때에도 기존의 도메인이 이미 사용중인 이름을 사용해서는 안된다는 점에 유의하자.


Creating an Additional WLS Domain


WebLogic Server에 새로운 도메인을 생성하는 방법은 다음과 같은 세 가지 방법이 있다.

- Configuration Wizard를 이용하는 방법
- weblogic.Server Command를 이용하는 방법
- Ant Tasks를 이용하는 방법

이번 강좌에서는 비교적 손쉬운 설치법인 Configuration Wizard를 사용하여 새 도메인을 생성해보자.

나머지 설치 방법은 아래의 페이지를 참조하기 바란다.
http://e-docs.bea.com/wls/docs81/adminguide/overview_domain.html#1116614

Configuration Wizard는 GUI 환경과 Text-Based 환경을 모두 제공한다.
하지만 일반적인 UNIX 시스템에 Telnet 접속하는 환경을 가정해서 Text-Based로 진행하기로 하자.


1. Configuration Wizard 실행

먼저, WL_HOME/common/bin 으로 이동한다.

WL_HOME은 시스템 상에 웹로직이 설치된 디렉토리이다.
기본적으로는 /usr/local/bea/weblogic81에 설치되어 있기 때문에 아래와 같이 이동한다. <그림 1>

$cd /usr/local/bea/weblogic81/common/bin

경로를 확인한 후, Text-Based Configuration Wizard를 실행한다. <그림 1>

$. ./config.sh -mode=console


<그림 1. Text-Based Configuration Wizard 실행>



2-1. Configuration Wizard : 기존 도메인 정보 확인

Text-Based Configuration Wizard는 GUI 환경의 그것과 마찬가지로, 프롬프트(Prompt)에 필요한 정보를 입력하는 것으로 단계별 진행이 이루어진다.

대부분의 단계에서 다음 단계의 번호 좌측에 '->'로 기본값을 표시해 두고 있기 때문에 해당 번호 대신 엔터키를 누르는 것만으로도 손쉽게 도메인 생성을 진행할 수 있다.
그러나, 몇몇 단계에서는 설정값을 직접 입력해야 하므로 가급적 원하는 메뉴의 번호를 입력하여 도메인 생성 과정에서 발생하기 쉬운 사소한 실수를 예방하자.
(습관적으로 엔터를 치다보면 어느새 Configuration Wizard에서 빠져 나오게 된다. 이럴땐 참 당황스럽다.)

새로운 도메인을 생성하기에 앞서 기존의 사용 중인 도메인과 그 이름을 확인한다.

기존 도메인에 대한 정보는 첫 번째 프롬프트에서 '2(Extend an existing WebLogic configuration)'를 선택하여 확인할 수 있다. <그림 2>, <그림 3>


<그림 2. Configuration Wizard : 프롬프트에서 2번(기존 도메인 확장)을 선택한다>


이동한 페이지에서 시스템에 생성되어 있는 기존 도메인들을 확인할 수 있다.
예제를 위해 사용한 시스템에서는 이미 'mydomain'과 'jchoDomain'이라는 두 개의 도메인이 생성되어 있는 것을 확인할 수 있다. <그림 3>

기존 도메인의 이름을 잘 기억해둔 후, 프롬프트에서 'P(Previous)'를 입력하여 이전 단계로 돌아가자.


<그림 3. Configuration Wizard : 시스템에 생성되어 있는 기존 도메인들을 확인한다>



2-2. Configuration Wizard : 새로운 도메인 생성 및 종류 선택

이제 본격적으로 새로운 도메인을 생성해보자

프롬프트에서 '1(Create a new WebLogic configuration)'을 선택한다. <그림 4>


<그림 4. Configuration Wizard : 프롬프트에서 1번(새 도메인 생성)을 선택한다>


Configuration Wizard가 생성할 도메인의 종류를 묻고 있다. <그림 5>

생성할 수 있는 도메인의 종류는 아래와 같다.

- Basic WebLogic Workshop Domain
- Basic WebLogic Server Domain
- WebLogic Server Examples Domain
- Avitek Medical Records Sample Domain

여기서는 일반적인 도메인을 생성하는 것이므로 '2(Basic WebLogic Server Domain)'를 선택한다. <그림 5>


<그림 5. Configuration Wizard : 프롬프트에서 2번(Basic WLS Domain)을 선택한다>



2-3. Configuration Wizard : Express Mode로 진행

새 도메인 생성 과정에서 Managed Server, Clustering, JDBC, JMS, Advanced Security 등을 함께 설정해야만 하는 경우가 아니라면, 일반적으로는 '1(Yes)'을 선택하여 Express Mode로 진행한다. <그림 6>
(위에 언급된 설정은 새 도메인 생성 후 WebLogic Console에서 설정하는 것이 보다 편리하다. 도메인 생성 과정에서 모든 것을 해결해야만 한다는 강박관념 따위는 벗어 던지자.)


<그림 6. Configuration Wizard : 프롬프트에서 1번(Yes)을 선택한다>



2-4. Configuration Wizard : 도메인 관리자 계정 설정

도메인을 관리할 관리자 계정을 설정하는 단계이다. <그림 7>

기본적으로는 관리자명의 기본값인 'weblogic'은 변경하지 않고, 비밀번호만을 원하는 것으로 설정한다.
(가급적 관리자명은 변경하지 않기로 한다. 당신의 기억력이 쓸데없는 곳에 낭비되는 것이 아깝지 않은가?)

다만, 예제에서는 두 가지 모두를 원하는대로 변경할 수 있음을 보여주고자 한다.
관리자명을 변경하기 위해 '1(Modify "User name")'을 선택하자. <그림 7>


<그림 7. Configuration Wizard : 프롬프트에서 1번(Modify "User name")을 선택한다>


변경할 관리자명을 직접 입력하자.
예제에서는 'admin'이라는 관리자명을 입력하여 사용하기로 한다. <그림 8>


<그림 8. Configuration Wizard : 새로운 관리자명을 입력한다>


관리자명을 입력하고 나면 다시 관리자 계정을 설정하는 단계로 돌아온다.
User name 항목의 Value가 'admin'으로 변경되어 있는 것을 확인할 수 있다. <그림 9>

관리자 계정의 비밀번호를 설정하기 위해 '2(Modify "User password")'를 선택하자. <그림 9>


<그림 9. Configuration Wizard : 프롬프트에서 2번(Modify "User password")을 선택한다>


관리자 계정의 비밀번호를 입력하자.
입력할 비밀번호는 반드시 8자리 이상이어야 한다.

예제에서는 'adminpass'이라는 비밀번호를 입력하여 사용하기로 한다. <그림 10>


<그림 10. Configuration Wizard : 관리자 계정의 비밀번호를 입력한다>


관리자명을 입력했을 때와 마찬가지로 비밀번호를 입력하고 나면 다시 관리자 계정을 설정하는 단계로 돌아온다.
User password 항목의 Value가 'adminpass'에 해당하는 아홉자리 '*(asterisk)'로 변경되어 있는 것을 확인할 수 있다. <그림 11>

입력한 비밀번호를 확인하기 위해, '3(Modify "Confirm user password")'를 선택한다.


<그림 11. Configuration Wizard : 프롬프트에서 3번(Modify "Confirm user password")을 선택한다>


앞서 입력한 'adminpass'이라는 비밀번호를 다시 입력한다. <그림 12>


<그림 12. Configuration Wizard : 관리자 계정의 비밀번호를 다시 입력한다>


Confirm user password 항목의 Value가 User password와 마찬가지로 아홉자리 '*(asterisk)'로 변경되어 있는 것을 확인한 후, 엔터키를 눌러 다음 단계로 넘어간다. <그림 13>


<그림 13. Configuration Wizard : 관리자 계정 정보가 입력된 것을 확인한 후 엔터키를 누른다>



2-5. Configuration Wizard : 도메인 모드 선택

생성할 도메인의 모드를 선택하는 단계이다.

개발용이면 Development Mode를, 상용이면 Production Mode를 선택한다.
예제이므로 여기서는 '1(Development Mode)'을 선택한다. <그림 14>



<그림 14. Configuration Wizard : 프롬프트에서 1번(Development Mode)을 선택한다>



2-6. Configuration Wizard : Java SDK 선택

새 도메인이 사용할 Java SDK를 선택한다.

시스템에 설치되어 있는 몇 가지 SDK 중에 하나를 고를 수 있지만, 특별한 이유가 없다면 WebLogic Server에서 제공하는 Sun SDK(WL_HOME 하위 디렉토리에 있다)를 사용하는 것이 안정적이다.
(Customizing에 대한 미련을 버리고, Vendor의 기본 설정을 신뢰하라!)

기본값인 '1(Sun SDK 1.4.1_05 @ /usr/local/bea/jdk141_05)'을 선택한다. <그림 15>


<그림 15. Configuration Wizard : 프롬프트에서 1번(Sun SDK 1.4.1_05 @ /usr/local/bea/jdk141_05)을 선택한다>



2-7. Configuration Wizard : 도메인 생성 경로 설정

새로운 도메인이 생성될 경로를 설정한다.

기본값은 /usr/local/bea/user_projects/domains 하위에 생성되지만 경로명이 너무 길다면 원하는 것으로 변경해도 된다.
예제에서는 기본값을 이용하기로 하고 엔터키를 눌러 다음 단계로 넘어간다. <그림 16>


<그림 16. Configuration Wizard : 엔터키를 눌러 다음 단계로 넘어간다>



2-8. Configuration Wizard : 새로운 도메인의 이름 설정

생성할 도메인의 이름을 설정하는 단계이다.

생성할 도메인은 앞서 언급한 것처럼 기존 시스템에서 이미 사용 중인 이름의 사용은 불가능하다.
따라서, 2-1에서 확인했던 도메인 이름이 아닌 새로운 도메인 이름을 지정하도록 한다.
(기존의 이름을 사용하려 한다면 Configuration Wizard는 에러메세지를 출력할 것이다. 기억력이 나쁜 편이라면 2-1에서 기존 도메인의 이름을 잘 적어두고 다음 단계를 진행했어야 했다!)

여기서는 'newDomain'이라는 이름을 입력하여 사용하기로 한다. <그림 17>


<그림 17. Configuration Wizard : 새 도메인 이름을 입력한다>


입력한 도메인 이름이 제대로 설정되어 있는 것을 확인한 후, 엔터키를 눌러 다음 단계로 넘어간다. <그림 18>


<그림 18. Configuration Wizard : 새 도메인 이름이 입력된 것을 확인한 후 엔터키를 누른다>



2-9. Configuration Wizard : 도메인 생성 완료 및 확인

모든 설정이 끝나면 Configuration Wizard는 생성 진행률을 표시하고, 최종적으로 'Domain Created Successfully!'라는 메세지를 출력한다.

도메인의 정상적인 생성 여부를 확인하기 위해, Configuration Wizard의 도메인 생성 단계에서 입력했던 도메인 생성 경로로 이동하여 새 도메인 이름의 디렉토리 생성 여부를 확인한다. <그림 19>

$cd /usr/local/bea/user_projects/domains

$ls


<그림 19. 설치 완료 메세지와 새 도메인 이름의 디렉토리를 확인한다>



3. config.xml 파일 수정

새 도메인 이름으로 생성된 디렉토리(여기서는 newDomain)에는 기존 도메인의 디렉토리와 마찬가지로 몇 가지 실행파일과 설정파일이 들어있다. <그림 19>

기존에 생성된 도메인이 없는 경우에는 별다른 수정없이 WebLogic Admin Server를 시작할 수 있다.
하지만 여기서는 기존에 생성된 도메인이 있는 상태에서 새로운 도메인을 추가했기 때문에 몇 가지 설정을 바꾸어 주어야 한다.

새 도메인 디렉토리로 이동하여, vi에디터로 config.xml 파일을 열기로 한다.

$cd newDomain

$vi ./config.xml

기존의 도메인들이 WebLogic Admin Server와 Managed Server를 위해, 이미 7001, 7011, 7021, 8001, 8011, 8021번 포트를 사용하고 있기 때문에 새로운 도메인은 다른 포트를 지정해 주어야 한다.
(다른 도메인이 사용 중인 포트는 해당 도메인 디렉토리의 config.xml 파일을 열어보면 알 수 있다.)

예제에서는 새로운 도메인의 WebLogic Admin Server를 위해 9001번 포트를 지정하였다. (파일 1의 굵은 빨간색 부분)

이 외에도, WebLogic Console 실행시 표시되는 서버 이름 등을 기본값에서 변경하고 싶다면, Server Name과 SSL Name을 원하는 것으로 변경하면 된다.
여기서는 'newServer'라는 이름으로 변경하였다. (파일 1의 가는 빨간색 부분)

[파일 1. config.xml]


<?xml version="1.0" encoding="UTF-8"?>
<Domain Name="newDomain" ConfigurationVersion="8.1.2.0">
    <Server Name="newServer" ListenAddress="" ListenPort="9001"
        ReliableDeliveryPolicy="RMDefaultPolicy" NativeIOEnabled="true">
        <SSL Name="newServer" Enabled="false" HostnameVerificationIgnored="false"/>
    </Server>
    <JMSFileStore Name="FileStore" Directory="rmfilestore"/>
    <WSReliableDeliveryPolicy Name="RMDefaultPolicy" Store="FileStore"
        DefaultRetryCount="10" DefaultTimeToLive="60000"/>
</Domain>

:wq!를 눌러 수정한 파일을 저장하고 vi에디터를 종료한다. <그림 20>


<그림 20. 수정된 config.xml 파일>



4. 새로운 도메인의 Admin Server 시작과 실패

config.xml 파일의 수정까지 완료하였다면 새로운 도메인의 WebLogic Admin Server를 시작해보자.

$./startWebLogic.sh

정상적으로 WebLogic Admin Server를 시작해 보았으나 'The WebLogic Server did not start up property.'라는 메세지와 함께 프로세스가 종료되었다.
에러메세지를 확인해보면, WebLogic Admin Server를 시작하는 과정에서 실행파일에서 찾고자 하는 myserver라는 서버 이름을 해당 configuration 파일에서 찾을 수 없어서 에러가 발생했음을 알 수 있다. <그림 21>

이는 config.xml 파일을 수정할 때, 부가적으로 서버 이름 등을 'newServer'로 변경하였기 때문에 발생한 에러이다. <그림 21>
(만약 config.xml에서 포트 번호만 변경하였다면 WebLogic Admin Server는 정상적으로 시작했을 것이다. 그래서 왠만하면 고집부리지 말고 Vendor의 기본 설정을 이용하라는 것이다!)


<그림 21. WebLogic Admin Server 시작에 실패하고 에러메세지가 출력되었다>



5. startWebLogic.sh 파일 수정

에러의 원인이 실행파일과 설정파일에서 서버 이름 등이 서로 다르기 때문임으로, 실행파일 역시 설정파일에서 변경한 대로 수정해 주어야 한다.

vi에디터로 startWebLogic.sh 파일을 열어보자. <그림 22>, <그림 23>

$vi ./startWebLogic.sh


<그림 22. Configuration Wizard : vi에디터로 startWebLogic.sh 파일을 연다>



<그림 23. vi에디터로 열어본 startWebLogic.sh>


startWeblogic.sh 파일에는 weblogc.Server Command를 이용하여 실제 WebLogic Admin Server를 시작시키기 이전에 몇 가지 환경설정 과정을 진행한다.

그 중에 서버 이름을 설정해 주는 부분이 있는데, 이 곳에서 설정한 서버 이름과 설정파일인 config.xml에서 변경한 서버 이름이 같아야 정상적인 작동이 가능하다.
따라서, SERVER_NAME의 값을 config.xml에서 설정한 값인 'newServer'로 변경해야 한다. (파일 2의 굵은 빨간색) <그림 24>
(다시 말하지만, config.xml에서 서버 이름을 변경하지 않았다면 startWebLogic.sh 파일은 수정할 필요가 없다.)

[파일 2. startWebLogic.sh]


#!/bin/sh

# WARNING: This file is created by the Configuration Wizard.
# Any changes to this script may be lost when adding extensions to this configuration.

# *************************************************************************
# This script is used to start WebLogic Server for the domain in the
# current working directory. This script simply sets the SERVER_NAME
# variable and starts server.
#
# To create your own start script for your domain, all you need to set is
# SERVER_NAME, then starts the server.
#
# Other variables that startWLS takes are:
#
# WLS_USER - cleartext user for server startup
# WLS_PW - cleartext password for server startup
# PRODUCTION_MODE - true for production mode servers, false for
# development mode
# JAVA_OPTIONS - Java command-line options for running the server. (These
# will be tagged on to the end of the JAVA_VM and MEM_ARGS)
# JAVA_VM - The java arg specifying the VM to run. (i.e. -server,
# -hotspot, etc.)
# MEM_ARGS - The variable to override the standard memory arguments
# passed to java
#
# For additional information, refer to the WebLogic Server Administration
# Console Online Help(http://e-docs.bea.com/wls/docs81/ConsoleHelp/startstop.html)
# *************************************************************************

# Initialize the common environment.

WL_HOME="/usr/local/bea/weblogic81"

PRODUCTION_MODE=""

JAVA_VENDOR="Sun"

JAVA_HOME="/usr/local/bea/jdk141_05"

# Call commEnv here AFTER setting the java_vendor to get common environmental settings.

. ${WL_HOME}/common/bin/commEnv.sh

# Set SERVER_NAME to the name of the server you wish to start up.

SERVER_NAME="newServer"

CLASSPATH="${WEBLOGIC_CLASSPATH}:${POINTBASE_CLASSPATH}:${JAVA_HOME}/jre/lib/rt.jar:
${WL_HOME}/server/lib/webservices.jar:${CLASSPATH}"
export CLASSPATH

# Call WebLogic Server

echo "."
echo "CLASSPATH=${CLASSPATH}"
echo "."
echo "PATH=${PATH}"
echo "."
echo "***************************************************"
echo "* To start WebLogic Server, use a username and *"
echo "* password assigned to an admin-level user. For *"
echo "* server administration, use the WebLogic Server *"
echo "* console at http://[hostname]:[port]/console *"
echo "***************************************************"

${JAVA_HOME}/bin/java ${JAVA_VM} ${MEM_ARGS} ${JAVA_OPTIONS} -Dweblogic.Name=${SERVER_NAME} -Dweblogic.ProductionModeEnabled=${PRODUCTION_MODE} -Djava.security.policy="${WL_HOME}/server/lib/weblogic.policy" weblogic.Server &


<그림 24. SERVER_NAME의 값을 'newServer'로 변경한다>


편의를 위해 한 가지만 더 수정해 보자.

위에서는 새 도메인 생성 이후, 아래와 같은 방법으로 WebLogic Admin Server를 시작하였다.
$./startWebLogic.sh

하지만 위에서처럼 WebLogic Admin Server를 실행시킬 경우에는 커멘드나 텔넷에서 빠져 나오면 WebLogic 프로세스도 종료된다.
당연한 얘기지만 프로세스를 유지시키기 위해서는 아래와 같이 실행파일명 뒤에 '&(ampersend)'를 붙여 백그라운드 모드로 실행시키는 것이 좋다.

$./startWebLogic.sh &

매번 실행할 때마다 '&'를 붙이는 번거로움을 줄이기 위해, startWebLogic.sh 파일의 맨 마지막 줄 맨 뒤에 '&'를 추가해두자. (파일 2의 가는 빨간색) <그림 25>

:wq!를 눌러 수정한 파일을 저장하고 vi에디터를 종료한다. <그림 25>


<그림 25. startWebLogic.sh 파일의 맨 마지막에 '&'를 추가한 후 파일을 저장한다>



6. 새로운 도메인의 Admin Server 재시작과 성공 확인

이제 모든 설정이 완료되었다.

startWebLogic.sh에 이미 '&'를 추가해 두었으므로, 위와 같은 방법으로 WebLogic Admin Server를 실행해본다. <그림 25>

$./startWebLogic.sh

실행로그의 맨 마지막 줄에 '<Server started in RUNNING mode>'라는 메세지가 출력된다면, 모든 설정이 완료되어 WebLogic Admin Server가 정상적으로 시작된 것이다. <그림 26>


<그림 26. Configuration Wizard : 관리자 계정 정보가 입력된 것을 확인한 후 엔터키를 누른다>


마지막으로, 웹브라우저에서 새로 생성한 도메인의 WebLogic Console을 띄워보자. <그림 27>

http://localhost:9001/console


<그림 27. 웹브라우저에서 WebLogic Console을 띄운다>


새 도메인 생성 과정에서 입력한 관리자 계정(admin/adminpass)로 로그인이 가능한지 확인한다. <그림 28>


<그림 28. 새 도메인의 관리자 계정을 입력하여 로그인 한다>


정상적인 Console 화면이 출력되고 Servers에서 newServer와 새로운 도메인의 Listen Port인 9001을 확인할 수 있다면 모든 과정이 성공적으로 끝난 것을 의미한다. <그림 29>, <그림 30>
(수 차례의 삽질 후에 맞게 되는 이 순간의 희열은 엔지니어가 아니라면 느낄 수 없는 것이리라!)


<그림 29. WebLogic Console이 정상적으로 열리는 것을 확인할 수 있다>



<그림 30. WebLogic Console의 Servers에서 newServer와 해당 포트인 9001을 확인할 수 있다>




Environment
- Red Hat Linux release 9
- WebLogic Server 8.1 SP2
- Remote Telnet Mode

Reference Sites
- http://e-docs.bea.com/wls/docs81/adminguide/overview_domain.html#1116614
- http://e-docs.bea.com/wls/docs81/adminguide/createdomain.html#1127576

1485 view

4.0 stars