Category: WAS

WAS 에 대한 카테고리

Systemd for WebLogic 11g

Ubuntu 16.04, CentOS 7, RHEL 7 부터는 Systemd 로 Kernel 의 메인프로세스가 바뀌었습니다. 과거에는 Init 이였는데 이 배포판들은 systemd 로 바뀌었습니다.

리눅스가 부팅하면서 SystemV 인 Run Level 에 따라서 자동으로 시작시키기위한 Init Script 가 존재했었는데, Systemd 도 리눅스가 부팅하면서 시작되도록 하는 Systemd Script 가 존재합니다.

Systemd for WebLogic Administrator

WebLogic 을 Systemd 로 동작하는 배포판에 설치했다면 시작/중지 스크립트를 다음과 같이 작성할 수 있습니다.

WebLogic 의 Admin 서버가 구동될때에 각종 옵션들을 주고 싶다면 “USER_MEM_ARGS” 쉘 환경변수로 지정하고 ‘startWebLogic.sh’ 를 실행하면 그것이 적용된다. Systemd 에서 이러한 환경변수들은 ‘/u01/app/weblogic/config/domains/mCloud/servers/AdminServer/etc/default/adminserver’ 파일에 다음과 같이 정의해 줍니다.

 

Systemd for WebLogic Managed Server

Managed Server 를 시작하기 위해서는 ‘startManagedWebLogic.sh’ 스크립트를 사용하는데, 인자로 서버명을 주어야 합니다. 이것도 Admin 서버와 비슷하게 환경파일을 지정하고 그곳에 정의해주면 됩니다.

‘/u01/app/weblogic/config/domains/mCloud/servers/Server-0/etc/default/server-0’ 는 다음과 같습니다.

물론 USER_MEM_ARGS 환경변수를 지정할 수도 있습니다.

Systemd 등록.

Systemd 에 스크립트를 등록하기 위해서는 ‘/etc/systemd/system’ 디렉토리로 파일을 복사하고 다음과 같은 명령어를 입력해줍니다.

심볼릭 링크가 생성되면서 Systemd 스크립트가 등록이 됩니다. 등록이되면 이제부터 시스템이 꺼질때는 자동으로 WebLogic 도 꺼지고 시스템이 부팅되면 자동으로 시작이 됩니다.

 

WebLogic 11g Silent 설치

WebLogic 11g Silent 설치 에대한 글입니다. Oracle 제품군들을 설치하기 위해서는 GUI 환경이라야 한다고 생각하겠지만 GUI 환경이 아니더라도 설치가 가능한데, 이러한 방법을 Slient 설치하록 합니다. WebLogic 11g 도 Silent 설치를 지원 합니다.

Silent 설치에 핵심은 설치를 위한 각종 자료를 XML 파일로 작성하는 것입니다. ‘각종 자료’라고 함은 설치할 디렉토리, 설치할 컨포넌트등을 정의하는 것입니다.

설치 환경

설치 환경은 다음과 같습니다.

  • OS: Ubuntu16.04 64bit
  • Hostname: weblogic1.localdomain

 

설치 준비

호스트네임 변경

호스트네임을 변경해줍니다. 과거에는 파일을 조작해야 했지만 다음과 같이 hostnamectl 명령어를 이용합니다.

로그인을 다시하면 변경된 호스트네임이 반영됩니다.

계정생성

계정은 Oracle 제품군 설치를 위해서 oinstall 그룹과 weblogic 계정을 다음과 같이 생성합니다.

디렉토리 생성

Oracle 은 자사의 제품군에 대한 설치를 위해 디렉토리 구조를 정의놨는데 이것을 OFA(Optimal Flexible Architecture) 라고 부릅니다. OFA 는 단순하게 디렉토리만을 정의한것이 아니라 파일시스템, 스토리지 확장등을 모두 고려해 연구해 Oracle 에서 발표한 것입니다.

 

Weblogic 11g 설치를 위해 다음과 같이 디렉토리를 생성 합니다.

쉘 환경 변수 설정

weblogic 계정에 쉘 환경변수를 다음과 같이 만들어 줍니다.

Silent.xml 생성

이제 설치 명세서인 Silent.xml 를 다음과 같이 작성해 줍니다.

대략 위와같이 작성합니다. 각각의 내용은 Oracle 홈페이지 Silent.xml 에 나와 있습니다.

설치 

다음과 같이 설치를 진행 합니다.

설치는 의외로 금방 끝난다.

이제 설치가 정상적으로 되었는지 다음과 같이 테스트를 합니다.

 

도메인 생성

GUI 가 없기 때문에 도메인 생성도 역시 Console 상태에서 해야하는데, WebLogic 은 이것을 지원 합니다.

새로운 도메인 생성을 위해서 1번을 선택합니다.

도메인 생성을 위한 기존의 템플릿이나 필요한 컴포넌트 선택하는 것으로 여기서는 1번을 선택합니다.

필요한 기능을 갖춘 도메인을 선택한다. 기본 WebLogic 서버 기능만 힜으면 됨으로 나머지 선택을 하지 않고 그냥 엔터

사용할 도메인 이름을 입력하고 엔터.

여기가 중요하다. 앞전에 설치를 위한 디렉토리 생성시에 도메인을 위한 디렉토리를 다음과 같이 만들어준적이 있다.

  • /u01/app/weblogic/config/domains

따라서 도메인 디렉토리를 위 디렉토리로 변경해준다.

WebLogic 의 관리자 계정을 생성한다. 2번과 3번을 선택해 패스워드를 지정해준다.

운영모드 선택이다. 자신에게 맞는 환경을 선택한다.

설치된 자바를 선택해주면 된다.

여기서 반드시 Administration Server 는 해주도록 하자. 관리자 서버를 실행해야 웹콘솔 접속이 가능하지고 모든 작업이 웹콘솔을 통해서 가능하게 된다.

Administration 서버 설정으로 필요한 부분, port 나 Listen address 등을 바꿔주면 된다.

이로서 도메인 생성이 완료되었다.

WebLogic 을 비록한 Oracle 제품군을 설치할때에 GUI 모드를 고집하는 경향이 있다. 하지만 GUI 모드 설치를 위해서는 GUI 를 위한 각종 프로그램들을 설치해야하고 느린 네트워크 환경에서는 설치가 수월하게 되지 않는다.

Silent 모드 설치와 Console 모드에서 도메인 생성은 간편하면서도 의존성이 없는 텍스트만으로 이루어짐으로 어떤 환경에서든지 활용이 가능하며 쉽다.

Managed Server 인증 기동

WebLogic Admin 을 세팅하고 웹 콘솔로 접속한 후에 서버를 하나 생성하면 Managed Server 가 생성되는 것입니다. 이를 기동하기 위해서 터미널에서 다음과 같이 해줍니다.

그런데, 위와같이 인증을 위한 프롬프트가 나옵니다. 이는 Admin 서버와 통신을 위한 것으로 Admin 웹 콘솔 로그인을 위한 계정을 입력해주면 됩니다.

하지만 매번 이렇게 할려면 매우 힘든 일이고 기동 스크립트는 자동화가 필요한 부분이라 이부분을 자동인증으로 하기 위한 방법을 설명합니다. 이 방법은 다음 링크에도 잘 기술되어 있습니다.

Managed Server 마다 boot.properties 파일을 생성해 다음과 같이 로그인 정보를 적어 줍니다.

텍스트 파일로 작성해서 저장하는데, Managed Server 를 기동하면 이게 암호화가 되기 때문에 보안에 아무런 문제가 없습니다.

Java 동작모드 바꾸기

아무런 설정 없이 WebLogic 서버들을 시작하면, 다음과 같은 JVM_OPTION 들이 보입니다.

-client 모드로 기동이 되는데 이를 -server 로 바꾸어야 합니다. Java 의 동작 모드는 지속적인 서비스를 위해서는 -server 가 적합 합니다. WebLogic 에서 이를 바꾸기 위해서는 다음과 같이 고쳐줍니다.

WebLogic 구동 시 /dev/random 블로킹 이슈 해결

이것을 해주지 않으면 구동시간이 아주 길어 집니다. 방법은 여러가지가 있지만 여기서는 전역환경변수에서 이것을 수정함으로써 해결 합니다.

위와같이 JAVA_OPTIONS 환경변수에 지정해줍니다.

 

WebLogic 11g 기동시 JAVA OPTION 넣기

WebLogic 11g 기동시 JAVA OPTION 넣기위해서 setDomainEnv.sh 나 commonEnv.sh 를 수정하는 경우가 있다. 하지만 이렇게 하면 WebLogic 11g 를 구성하는 Admin, NodeManager, ManagedServer 에 각각 따로따로 적용해주기위해서 앞에서 언급한 쉘 스크립트에 조건식을 줘야 한다.

setDomainEnv.sh 나 commonEnv.sh 는 WebLogic 서버에서 전역적으로 사용하는 것이기 때문에 특정한 부분을 위해서 수정하는 경우는 지양해야 한다.

최신의 WebLogic 11g 에서는 이러한 특정부분만을 위해 적용할 수 있는 JAVA OPTION 변수를 제공하는데 그것이 바로 USER_MEM_ARGS 이다. 쉘 환경변수로서 이것을 활용하면 Admin, NodeManager, ManagedServer 기동시에 JAVA OPTION을 줄 수 있다.

예를들어 Admin 서버를 기동할때에 사용하는 스크립트인 ${DOMAIN_HOME}/startWebLogic.sh 를 보자.

위와 같이 USER_MEM_ARGS 환경변수에 JAVA OPTION 값을 지정하면 WebLogic 이 구동시에 이것을 반영하게 된다.

ManagedServer 기동시에도 마찬가지다. 보통 ManagedServer 기동은 다음과 같이 한다.

하지만 이렇게하면 JAVA OPTION을 제공할 수가 없다. Server-0 로 불리우는 ManagedServer 기동을 위해서 일종의 랩퍼 스크립트를 다음과 같이 작성해보자.

위와같이 USER_MEM_ARGS 쉘 환경변수에 JAVA OPTION 값을 지정하면 이것을 반영하하여 Server-0 는 기동하게 된다.

WebLogic 11g 클러스터 설정.

WebLogic 11g 에서는 ManagedServer 를 클러스터 설정을 제공합니다. 역시나 Admin Web Console 을 통해서 클릭으로만으로 쉽게 간단하게 설정이 가능합니다.

WebLogic 11g 클러스터 설정

Admin Web Console 에서 다음과 같이 설정이 가능 합니다.

웹로직 11g 클러스터 생성
웹로직 11g 클러스터 생성

왼쪽에서 클러스터를 누르고나면 위 화면과 같이 나오고 “새로 만들기” 버튼을 눌러서 생성을 할 수 있습니다.

웹로직 11g 클러스터 생성
웹로직 11g 클러스터 생성

생성할 클러스터 이름을 입력해 줍니다. 적절한 이름을 입력해주면 됩니다. 두번째로 클러스터 멤버간 메시징을 위한 방법을 정의해줍니다. 유니캐스트와 멀티캐스트가 있는데 유니캐스트의 경우에는 클러스터 노드가 많지 않을 경우에 사용하는게 적절해 보이며 반대일 경우에는 멀티캐스트로 하는것이 적절해 보입니다.

생성이 완료되면 이제 생성된 클러스터에 대해서 설정을 해야 합니다. 클러스터 메뉴에서 생성된 클러스터를 클릭하면 다음과 같은 화면을 보실 수가 있습니다.

웹로직 11g 클러스터 로드 설정
웹로직 11g 클러스터 로드 설정

로드 알고리즘은 클러스터간 로드를 어떻게 분배할 것인가에 대한 것으로 서비스 형태에 따라 적절히 선택해주면 됩니다. 클러스터 주소의 서버 수는 클러스터에 나열할 서버 개수를 지정해 줍니다.

웹로직 11g 클러스터 서버 추가
웹로직 11g 클러스터 서버 추가

클러스터 메뉴에서 서버 탭에서 추가 버튼을 클릭해서 서버를 추가 할 수 있습니다. 서버를 추가할때에는 기존의 생성된 서버를 추가할 수 있고 서버를 생성하면서 추가할 수도 있습니다. 서버를 추가하면서 생성할때에는 NodeManager 서버가 실행중이여야 합니다.

Session Replication between Cluserted Node

클러스터내 서버끼리 세션을 복재하고 공유하기위해서는 weblogic.xml 을 다음과 같이 설정 해 주어야 합니다.

이렇게 설정한 후에 WebLogic 클러스터앞에 Proxy 서버를 설정하고 도메인으로 호출을 하면 클러스터간에 세션이 공유 됩니다.

추가

위 설정은 NodeManager 를 이용한  설정이다. 만일 NodeManager 없이 ManagedServer 를 구동한다면 Java CLI 에 다음을 추가 해줘야 한다.

 

WebLogic 서버 복제하기

이 문서는 WebLogic 서버 복제하기에 대한 문서 입니다.

WebLogic 버는 여러서버에 걸쳐서 설치가 되고 이들을 한대로 묶어 하나처럼 동작하도록 할 수 있습니다. 이를 위해서는 모든 서버의 설치버전과 환경설정등이 모두 동일 해야 합니다.

만일 WebLogic 서버가 10대 정도라고 하면 10대 서버 모두 새롭게 설치하는 절차를 거쳐서 만들어야 합니다. 그리고 모두 설정을 같게 해줘야 한다. 그런데 사람은 언제나 실수를 할 수가 있어 잠제적인 장애요소를 남기게 됩니다.

이럴때 필요한 것이 1대 서버에 설치를 하고 설치되고 설정이 모두 된 WebLogic 10.3.6 서버를 다른 서버에 그대로 복사해 넣으면 아주 편할 것인데, WebLogic 10.3.6 서버는 이러한 작업을 위한 간단한 스크립트를 제공합니다.

WebLogic 10.3.6 서버 복제는 다음과 같이 이루어진다.

  • WebLogic Home 복제
  • Domain 복제
  • 새로운 서버로 복제한 파일 전송
  • WebLogic Home 복구
  • Domain 복구
  • 설정 변경

WebLogic Home 복제

WebLogic 10.3.6 은 WebLogic 서버 본체라할 수 있는 홈 디렉토리가 존재 합니다. 모든 WebLogic 의 라이브러리와 명령어들이 모두 WebLogic Home 디렉토리에 존재합니다. 이것이 없으면 WebLogic 이 구동될 수 없습니다.

WebLogic Home 디렉토리 복제는 ‘clone.sh’ 스크립트를 통해서 가능합니다.  이 스크립트는 다음의 위치에 존재합니다.

이제 WebLogic 10.3.6 의 홈 디렉토리를 복제를 다음과 같이 합니다.

시스템 계정의 홈 디렉토리에 mwhome.jar 로 생성됩니다.

Domain 복제

Domain 복제는 ‘pack.sh’ 스크립트를 통해서 할 수 있습니다.

다음과 같이 Domain 복제를 합니다.

위와같이 ‘succeed’ 메시지가 나오면 성공한 것 입니다.

복구를 위한 사전 준비

복구를 위해서 다른 서버를 준비해야 합니다. 그 서버에는 기본적으로 다음과 같은 사항이 정리되어 있어야 합니다.

  • 원본 서버와 동일한 자바(JAVA) 가 설치되어 있어야 한다.
  • 원본 서버와 동일한 WebLogic 디렉토리를 가지고 있어야 한다.

WebLogic Home 복구

WebLogic Home 복구는 jar 파일을 jar 명령어로 압축해제함으로써 완료 됩니다.

별거 없습니다. 위 명령어로 복구가 완료 됩니다.

여기서 한가지 더 해줘야 할 것이 nodemanager 를 위한 복구 프로세스 입니다. nodemanager 는 WebLogic Admin 서버와 통신을 하면서 Node 를 관리하는 역활을 담당합니다. Node 에 Managed Server 를 생성하거나 삭제, 시작, 중지등을 Admin 서버에서 하기위해서는 nodemanager 서버가 있어야 합니다.

문제는 nodemanager 서버는 서버에 종속되는 설정값을 가져야 하기 때문에 서버를 복제하고 난후에 서버환경을 다시 인식시켜줘야 합니다.  방법은 다음과 같습니다.

restore.sh 스크립트를 실행하면 WebLogic Home 디렉토리에 퍼미션이나 각종 설정파일들이 서버 환경에 맞춰 재조정됩니다.

이제 Node Manager 서버를 다음과 같이 새롭게 구성해 줍니다.

Node Manager 를 실행하면 nodemanager.properties 파일에 각종 환경설정을 정리하고 nodemanager.domains 파일을 생성합니다. 그런데, nodemanager.properties 에 내용을 변경해야하기 때문에 Node Manager 를 중단시킨 겁니다.

nodemanager.properties 파일중에 다음과 같이 수정해 줍니다.

WebLogic Domain 복구

복제할때에 ‘pack.sh’ 명령어를 썼었는데 복구할때는 ‘unpack.sh’ 명령어를 사용 합니다.

복구가 완료 되면, 이제 Domain 설정파일에서 호스트 이름을 현 시스템으로 바꿉니다. 그것은 /home/systemv/wl_domain/mCloud/config/config.xml 파일인데, 여기서 호스트명을 현 시스템으로 바꿔주고 불필요한 Managed Server 리스트, deployment 를 삭제처리 해줍니다.

이제 WebLogic Web Console 에서 ‘환경 -> 시스템’ 에서 노드매니져 서버를 등록 해줍니다.

서버 등록

이제 서버(Managed Node)를 등록 해줍니다. 생성을 한 후에 시스템을 새롭게 실행한 노드매니져 서버로 지정해 줍니다.

서버의 시스템 서버 설정
서버의 시스템 서버 설정

그리고 서버를 시작하면 인증 오류가 발생하면서 서버가 시작되지 않습니다.

인증을 위한 한번 수동으로 Managed Node 서버 시작

Admin 서버와 복제 서버간의 통신을 위한 5556, 7001 포트를 개방해 줍니다. 그리고 복제 서버에서 다음과 같이 수동으로 서버를 시작해 줍니다.

위와같이 한번 수동으로 서버를 시작하면 Admin 서버에서 ManageServer 를 이용해서 서버를 시작하거나 종료할때 인증 오류가 발생하지 않습니다.

 

Weblogic 10.3.6 Node Manager 사용하기

Weblogic 10.3.6 에는 Node Manager 가 존재합니다. Node Manager 는 하나의 도메인에 존재하는 서버로 말 그대로 노드를 관리하는 기능을 합니다. 좀 더 들어가면, Node Manager 의 주요 기능은 도메인에 추가된 Managed Server 를 생성,삭제,시작,중지등을 가능하도록 해줍니다.

만일 Node Manager 가 존재하지 않는다면, Managed Server 를 Web Console 을 통해서 생성을 할 수 있지만 Managed Server 를 시작하기 위해서는 터미널에서 커맨드 라인으로 직접 시작 명령을 주거나 아니면 WST 를 이용해서 시작을 시켜줘야 합니다.

Admin Server, Managed Server 는 도메인에 귀속되지만 Node Manager 는 머신(Machine)에 귀속됩니다. 그래서 시작스크립트도 $MW_HOME 에 존재합니다.

Node Manager 시작

Node Manager 시작은 다음과 같이 합니다.

최초로 Node Manager 를 실행하면 화면에 Node Manager 설정 관련 내용이 화면에 출력됩니다. 이 내용은 $MW_HOME/common/nodemanager 디렉토리에 nodemanager.properties 파일에 기록 됩니다. 여기서 자세히 보면 “SecureListener=true” 로 된 것이 보입니다. 이것은 NodeManager 와의 연결을 SSL 을 통해서 하겠다는 겁니다.

위 설정은 $MW_HOME/common/nodemanager/nodemanager.properties 파일에 저장되어 있고 SecureListener 부분을 false 로 바꾸고 Node Manager 를 재 실행해 줍니다.

이제 Node Manager 를 등록해 줍니다.

Node Manager 등록

Node Manager 등록은 WebLogic 의 관리자 페이지에서 ‘환경->시스템’ 에서 할 수 있습니다. 관리자 콘솔에서는 Node Manager 등록이라고 안하고 시스템이라고 표현합니다.

Node Manager 등록
Node Manager 등록

‘새로 만들기’ 를 클릭해서 등록 화면으로 넘어갑니다.

Node Manager 이름 등록
Node Manager 이름 등록

시스템 이름을 지정해 줍니다. ‘다음’ 으로 넘어 갑니다.

Node Manager 정보 입력
Node Manager 정보 입력

여기서 ‘유형’ 을 일반으로 해줍니다. 앞에서 SeucureListener 를 false 로 해줬기 때문에 일반 접속 유형으로 Node Manager 가 통신을 합니다. 그리고 수신 주소, 수신 포트 등을 알맞게 입력하고 ‘완료’ 해 줍니다.

서버 설정

이렇게 Node Manager 를 등록하게 되면 이미 생성된 서버나 생성할 서버에 ‘시스템’ 을 지정해 줄 수 있습니다. 서버 목록중에 생성된 서버를 클릭해서 들어가면 ‘일반’ 탭에 서버 정보가 나오는데, 여기서 시스템을 드롭박스를 이용해서 선택해줍니다. 이렇게 되면 이 서버는 선택한 시스템에 생성되고 제어 됩니다.

 

 

WebLogic 구동 시 /dev/random 블로킹 이슈 해결

WebLogic 10.3.6 을 설치할때에 관리 서버 1개와 매니지드 서버 1개를 생성하게 됩니다. 그런데, 서버 시작 스크립트에서 난수 관련된 것을 고치지 않으면 시작이 굉장히 오래 걸립니다.

이는 Unix 시스템의 경우에 /dev/random 을 사용하지 않고 /dev/./urandom 을 사용하기 때문입니다.

이를 해결하는 방법은 두가지 인데, 첫번째로는 Java 의 Security 부분을 바꿔 주는 겁니다. 그러면 Java 를 사용하는 모든 자바 프로그램에 다 적용 됩니다. 다음과 같이 해줍니다.

이렇게 해주고 서버를 재시작 하면 적용 됩니다.

두번째는 Java 애플리케이션을 실행할 때에 JVM Command Line 파라메터를 주는 겁니다. 다음과 같이 해줍니다.

위와같이 서버 시작 스크립트에 JAVA_OPTIONS 환경변수에 난수 장치를 지정해 줍니다.

WebLogic 10.3.6 설치하기 – GUI

이 문서는 WebLogic 10.3.6 설치하기 중에 GUI 를 이용한 방법에 관한 것 입니다. 지난번 글에서 “Server Only” 설치 실패후에 jar 파일을 이용한 설치를 기반으로 합니다.

환경

설치 환경에 대해서 먼저 설명을 해야할 필요가 있습니다. 설치 환경은 다음과 같습니다.

  • JDK 1.7 Lastest Release
  • Ubuntu 14.04 64bit
  • WebLogic 10.3.6 – wls1036_generic.jar
  • 설치 계정은 일반계정 입니다.
  • 설치 방법은 GUI 입니다.

위와 같은 환경 입니다.

설치 파일

WebLogic 은 설치 방법이 어떤 패키지를 가지고 설치를 하느냐에 따라 다릅니다. 이 문서에서의 설치는 다음과 같은 것을 이용 한 것입니다.

WebLogic 10.3.6 Generic 설치
WebLogic 10.3.6 Generic 설치

이는 Generic 파일을 이용해서 설치하는 방법이라고도 합니다. Generic 파일은 jar 패키징 된것으로 이 파일을 다운로드 받아 실행해 설치하는 것을 말합니다.

설치 진행

다음과 같이 터미널에서 실행해 GUI 설치 프로그램을 실행 합니다. 문제는 GUI 없이 서버만 설치하는 경우가 많은데 이렇게 되면 GUI 설치를 못할 수도 있습니다. 이를 위해서 서버에 X-Window 서버만을 최소로 설치해주면 됩니다.

그리고 일반 계정으로 로그인을 한 후에 다음과 같이 .Xauthority 파일을 생성해 줍니다.

그리고 다음과 같이 ssh 의 X11 Forwarding 을 이용해서 접속을 하고 설치 프로그램을 실행 합니다.

WebLogic 10.3.6 GUI 설치 시작
WebLogic 10.3.6 GUI 설치 시작

정상적이라면 위 화면과 같이 설치 시작 화면이 나옵니다. Next 를 버튼을 눌러 진행을 합니다.

WebLogic 10.3.6 Home 디렉토리 설정
WebLogic 10.3.6 Home 디렉토리 설정

WebLogic 홈 디렉토리를 설정해 줍니다. 이는 MW_HOME 시스템 환경 변수에 세팅되는 값임과 동시에 WebLogic 의 본체가 설치되는 디렉토리 입니다. 일반계정으로 생성한 디렉토리를 지정해주고 다음으로 넘어간다.

WebLogic 10.3.6 보안 업데이트 등록
WebLogic 10.3.6 보안 업데이트 등록

보안 업데이트 등록은 하지 않아도 됩니다. 체크를 해제하고 Next 를 눌러 진행합니다.

설치 타칩 결정
WebLogic 10.3.6 설치 타칩 결정

Typical 를 선택해도 되지만 저는 Custom 을 선택해 필요한 것만 설치했습니다. 잘 모른다면 Typical 를 선택하시고 Next 를 하셔도 됩니다.

WebLogic 10.3.6 컴포넌트 선택
WebLogic 10.3.6 컴포넌트 선택

Coherence 를 사용하지 않을 예정이라서 뺏고, WebLogic SCA 또한 사용할 일이 없어서 뺐습니다. (사실 나머지도 잘 몰라요…) Next 를 해줍니다.

WebLogic 10.3.6 JDK 선택
WebLogic 10.3.6 JDK 선택

JDK 버전을 선택해 줍니다. 저는 1.7 버전을 미리 선택해 놨기 때문에 이것을 선택하고 Next합니다.

webLogic 10.3.6 프로덕트 디렉토리 지정
webLogic 10.3.6 프로덕트 디렉토리 지정

실제 WebLogic 본체를 설치할 디렉토리를 지정해 주고 Next.

WebLogic 10.3.6 설치 요약본
WebLogic 10.3.6 설치 요약본

위와같이 설치할 컴포넌트들을 보여주고 맞는지 확인해줍니다. 맞다면 Next.

WebLogic 10.3.6 설치 마침
WebLogic 10.3.6 설치 마침

설치를 마치는데, “Run Quickstart” 를 체크해 이어서 Domain 을 생성하도록 하겠습니다.

WebLogic 10.3.6 QuickStart
WebLogic 10.3.6 QuickStart

“Getting started with WebLogic Server 10.3.6” 을 클릭 합니다.

WebLogic 10.3.6 Create a new WebLogic Domain
WebLogic 10.3.6 Create a new WebLogic Domain

WebLogic 의 도메인을 생성합니다. WebLogic 에서 Domain 은 하나의 서비스 그룹으로 생각하시면 됩니다. 여기에 Admin 서버, Managed 서버들이 포함 됩니다.

WebLogic 10.3.6 도메인 설정
WebLogic 10.3.6 도메인 설정

도메인 설정은 도메인에 어떤 서버들을 넣을 건지, 어떤 기능들을 활성화 할것인지를 선택하는 것으로 그냥 WAS 기능만 필요해서 WebLogic Server 만 선택된 상태 그대로 Next 합니다.

WebLogic 10.3.6 도메인 이름과 위치
WebLogic 10.3.6 도메인 이름과 위치

도메인 이름과 위치를 지정해 주고 Next.

WebLogic 10.3.6 도메인 관리를 위한 계정 설정
WebLogic 10.3.6 도메인 관리를 위한 계정 설정

도메인 관리를 위한 계정을 입력하고 Next.

WebLogic 10.3.6 서버 시작 모드 설정
WebLogic 10.3.6 서버 시작 모드 설정

서버 시작모드를 선택해주는 건데, 명확한 차이가 뭔지는 잘 모르겠네요 기본값으로 하고 Next.

WebLogic 10.3.6 서버 선택
WebLogic 10.3.6 서버 선택

Domain 내에 어떤 서버들을 설정할 것인지를 선택합니다. 우선 관리 서버만 먼저하고 나머지는 추후에 진행 합니다. Admin 서버를 선택하고 나오는 다음 화면에서 기본값으로 두고 다음으로 넘어갑니다.

WebLogic 10.3.6 도메인 생성 완료
WebLogic 10.3.6 도메인 생성 완료

위와같이 도메인 생성이 완료 됐습니다.

Trouble Shooting

도메인 생성시 모든 옵션을 다  설정하고 난후에 위 화면에서 프로그레스바가 70%에서 멈추고 “Creating Domain Security Information” 부분에서 멈추게 됩니다.

이는 난수 발생하는 부분이 문제가 있기 때문입니다. Java 의 에서 난수를 생성할때에 /dev/random 을 사용하는데, Unix 시스템의 경우에 /dev/./urandom 을 사용해야지만 정상적으로 동작 합니다.

도메인 생성 실행이 멈췄다면 취소하고 도메인 생성을 위한 디렉토리내에 모든 파일을 삭제 처리 합니다. 그리고 다음과 같이 “Configuration Wizard” 시작 스크립트를 다음과 같이 수정해 줍니다.

위와같이 수정한 후에 config.sh 를 실행하면 “Configuration Wizard” 가 다시 실행되고 정상적으로 완료 됩니다.

WebLogic 10.3.6 설치하기

이 문서는 WebLogic 10.3.6 설치에 관한 문서 입니다.

이 시점에서 WebLogic 10.3.6 는 아주 오래된 버전이다. JDK 1.6 을 기반으로 하고 JEE 도 오래된 버전을 지원한다. 그런데도 간혹 프로젝트를 하다보면 이 버전을 사용하는 곳도 심심치 않아 경악할 때가 있다.

WebLogic 을 버전 업그레이드를 한다고 하려면 어짜피 오래된 버전에 관해서 조금 알아 둘 필요가 있고 WebLogic 의 기본 구성의 경우에는 버전에 크게 상관이 없는 경우도 있어 나름대로 의미가 있다.

설치

WebLogic 10.3.6 버전은 Oracle 홈페이지에서 다운로드 받을 수 있다.정확하게 말하면 WebLogic 10.3.6 버전중에 “Zip distribution with Oracle WebLogic Server only and intended for WebLogic Server” 에 대한 것이다.

Oracle WebLogic Server only
Oracle WebLogic Server only

위와 같이 파일을 다운로드 받습니다. 그리고 다음과 같이 압축을 해제해 줍니다.

그리고 다음과 같이 MW_HOME 환경변수를 세팅해줍니다.

그리고 다음과 같이 configure.sh 파일을 Bash 쉘에 문법에 맞게 고쳐줍니다.

그리고 이제 configure.sh 를 실행해 줍니다.

여기서 한가지 중요한 것이 있는데, commEnv.sh 를 살짝 수정해줘야 합니다. 이걸 수정하지 않으면 64bit 시스템의 라이브러리를 환경변수로 세팅하지 못합니다.

 

도메인 생성

도메인은 WebLogic 에서 서버를 묶어주는 하나의 단위라고 볼 수 있습니다. 서버의 묶이라고 할수도 있고 서비스를 위한 하나의 큰 아키텍쳐라고 볼 수도 있습니다.

이 도메인은 별도의 다른 일반계정에서 디렉토리를 생성해서 생성할 수 있습니다. 여기서는 다음과 같은 위치에 도메인을 생성할 것입니다.

그리고 앞에서 configure.sh 를 실행해 생성된 환경설정을 세팅하기위해서 다음과 같이 실행해 줍니다.

그리고 다음과 같이 도메인 생성을 위한 명령어를 다음과 같이 실행해 줍니다.

 

실패

이렇게 설치를 시도했지만 안됨. 되다가도 아무런 반응이 없고 config.xml 파일이 생성되지 않고 시작/중지 스크립트도 만들어지지 않음.

이 방법으로는 안될듯.. 최소 용량으로 어떻게 돌려보나 했는데 문제가 있어보임.

 

Apache Tomcat JNDI 설정

Apache Tomcat 도 JNDI 설정을 할 수 있다. 특히나 데이터베이스 연결을 위해서 JNDI 설정을 사용할 수 있다. JNDI 를 사용하면 Web Application 내에서 데이터베이스 연결을 할 필요가 없이 네이밍(Naming) 을 호출함으로써 간단히 해결된다.

이 문서에서는 MySQL 을 위한 Apache Tomcat JNDI 설정 에 대한 것이다.

MySQL Connector/J 설치

JNDI 를 이용해서 MySQL 연결을 설정하기 위해서는 MySQL Connector/J 를 먼저 설치해줘야 한다. 이것은 MySQL 홈페이지에서 다운로드 가능한데 파일이 jar 확장자를 가진 하나의 파일이 필요하다. 이 파일을 Apache Tomcat 라이브러리 디렉토리에 복사해주면 끝난다.

Apache Tomcat JNDI 설정

MySQL Connector/J 를 설치했다면, 이제 Apache Tomcat JDNDI 설정을 해야 한다. 이는 Apache Tomcat 의 conf 디렉토리에 context.xml 파일을 다음과 같이 설정 한다. 이 설정을 위해서는 MySQL 연결 정보를 알고 있어야 한다.

이렇게 해주고 Web Application 에 web.xml 파일을 설정이 필요하다.

web.xml 설정

Java Web Application 에서는 web.xml 파일이 존재한다. 여기에 JNDI 을 인식시키기 위해서 다음과 같이 설정 해줘야 한다.

Spring Context 설정

Spring 을 사용한다면 다음과 같이 JNDI 를 호출 할 수 있다.

여기서 주의해야할 것은 jndiName 이 ‘comp/env/’ 를 덧붙인다는데 있다. 앞에 설정을 보면 ‘jdbc/MySQLDS’ 로만 설정 된되지만 Spring 에선 ‘comp/env/’ 를 앞에서 붙여주는 것이 다르다.