Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents
maxLevel2

 

 

개요 

...

본 문서는 Altibase와 WebLogic을 연동하기 위한 가이드 문서로서 WebLogic 이 설치되어 있다는 가정하에 Altibase와 연동을 하는 간략한 웹 응용프로그램 실행까지 다루고 있습니다.

...

Note

이 문서는 정보 제공을 목적으로 제공되며, 사전에 예고 없이 변경될 수 있습니다. 이 문서는 오류가 있을 수 있으며, 상업적 또는 특정 목적에 부합하는 명시적, 묵시적인 책임이 일절 없습니다.

이 문서에 포함된 Altibase 제품의 특징이나 기능의 개발, 발표 등의 시기는 Altibase 재량입니다.

Altibase는 이 문서에 대하여 관련된 특허권, 상표권, 저작권 또는 기타 지적 재산권을 보유할 수 있습니다.

 

 

WebLogic 용어 설명

...

Altibase WebLogic의 연동에 앞서 기본적으로 알아야 할 WebLogic과 관련 용어에 대해 간략하게 설명한다.

 

도메인

...

도메인이란 WebLogic 서버 인스턴스(instance)에 대한 논리적인 그룹으로 하나의 도메인은 하나 이상의 WebLogic 서버 인스턴스로 구성된다.

사용자는 하나의 WebLogic (WebLogic Server/WLS)을 설치하여 여러 개의 도메인을 구성하거나 여러 개의 WebLogic을 설치하여 하나의 도메인으로 구성할 수 있다.

 

WebLogic 서버 인스턴스 (관리 서버, 관리된 서버)

...

WebLogic 서버 인스턴스란 웹 응용프로그램(Web Application), 웹 서비스(Web Services), EJB 등을 배치(deploy)할 수 있는 하나의 프로세스(process)로서 “관리 서버”, “관리된 서버”로 구분한다.

...

  • 관리 서버 (Administration Server)
    도메인 전체를 관리할 수 있도록 관리 콘솔(Administration Console)이 함께 배치된 WebLogic 서버 인스턴스로 도메인 생성시 함께 생성된다.
  • 관리된 서버 (Managed Server)
    관리 서버를 제외한 모든 WebLogic 서버 인스턴스로 별도로 추가하거나 인스턴스간 클러스트링(clustering)이 가능하다.
    즉, 하나의 도메인은 1개의 관리 서버와 0개 이상의 관리된 서버로 구성된다.

 

JDBC 데이터 소스

...

JDBC 데이터 소스란 WebLogic 서버 인스턴스가 RDBMS에 접속하기 위한 자바 객체이다.

...

JBDC 데이터 소스를 생성하기 위해서는 관련 JDBC 드라이버가 WebLogic에서 사용할 수 있도록 사전에 설정되어 있어야만 한다.

 

커넥션 풀(Pool)

...

JDBC 데이터 소스 생성 시 자동으로 생성되는 접속 대상 RDBMS와의 접속 집합으로 “초기 용량”, “최대 용량”과 같은 다양한 속성에 의해 조절된다.

커넥션 풀, 접속 풀은 동의어로 본 문서에서는 “커넥션 풀”로 통일한다.

 

배치, 배포

...

배치, 배포는 모두 deploy 를 의미하는 동의어로 본 문서에서는 “배치”로 통일한다.

 

 

시작하기 전에

...

Altibase와 WebLogic을 연동하기 위한 간단한 권장 사항을 알아본다.

 

WebLogic 버전

...

기본적으로 최신 버전을 권장하며 최소 WebLogic 8.1.6.0 이상을 권장한다.

이보다 하위버전에서 서로 다른 버전의 Altibase를 동시에 연동하면 JDBC 드라이버 연동이 정상적으로 되지 않아 WebLogic 서버 인스턴스의 구동이 실패하거나 행(hang)과 같은 현상이 발생할 수 있다.

 

JDBC 스펙(Spec)

...

Altibase JDBC 드라이버는 JDBC 스펙 3.0 (JRE 1.4 또는 1.5)을 기준으로 JDK 1.4에서 제작(build)되었으며 스펙 미 지원의 경우는 “Not Supported” 또는 에러를 반환한다.

...

스펙 미 지원으로 인하여 발생하는 문제에 대해 Altibase는 보장하지 않는다.

 

 

WebLogic Setup

...

WebLogic을 다운로드 및 설치 후 하나의 도메인을 생성하는 간략한 절차를 Windows 플랫폼의 WebLogic 12.1.3.0을 예로 하여 설명한다.

 

다운로드

...

2008년 4월 WebLogic을 개발한 BEA Systems 가 Oracle로 인수되면서 버전 9 이상부터는 Oracle 미들웨어 제품 다운로드 페이지에서 다운로드 할 수 있다.

...

해당 웹 페이지에서 라이선스 동의 후 운영체제 플랫폼에 맞는 가장 최근에 릴리즈(release)된 WebLogic을 다운로드 받도록 한다.

 

설치

...

다운로드 받은 파일을 실행하면 WebLogic 자동 인스톨러(installer)가 수행된다. 아래와 같은 절차로 WebLogic을 설치한다.

...

(여기서 지정한 WebLogic 의 설치경로는 추후 환경변수 WL_HOME 으로 식별된다.)

3. 설치 완료 확인

 

도메인 생성

...

설치 마법사(Configuration Wizard)를 사용하여 도메인을 생성할 수 있다.

...

5. 도메인 생성이 모두 완료되면 “관리 서버 시작” 옵션을 체크한 상태에서 완료(Done)를 선택한다.

6. 설치 완료

 

 

WebLogic 서버 인스턴스의 구동과 종료

...

WebLogic 서버 인스턴스를 구동하고 종료하는 여러 가지 방법 중 $DOMAIN_HOME/bin 에 존재하는 스크립트(script or batch) 파일 실행을 통한 구동과 종료에 대해 설명한다.

...

  • 관리 서버 - startWebLogic.cmd / stopWebLogic.cmd
  • 관리된 서버 - startManagedWebLogic.cmd / stopManagedWebLogic.cmd

 

구동

...

startWebLogic.cmd 를 실행하여 해당 도메인의 관리 서버를 구동한다. 아래는 정상적으로 구동이 완료되었을 때의 메시지 형태 예제이다.

Code Block
themeDJango
languagebash
$ startWebLogic.cmd
.
JAVA Memory arguments: -Xms256m -Xmx512m -XX:CompileThreshold=8000 -XX:PermSize=128m  -XX:MaxPermSize=256m
.
***************************************************
*  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        *
***************************************************
... 중략 ...

<2014. 10. 30 오후 4시 27분 13초 KST> <Notice> <WebLogicServer> <BEA-000331> <Started the WebLogic Server Administration
 Server "myserver" for domain "mydomain" running in development mode.>
<2014. 10. 30 오후 4시 27분 13초 KST> <Notice> <WebLogicServer> <BEA-000360> <The server started in RUNNING mode.>
<2014. 10. 30 오후 4시 27분 13초 KST> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to RUNNING.>

 

종료

...

stopWebLogic.cmd 를 실행하여 해당 도메인의 관리 서버를 종료한다. 아래는 정상적으로 종료가 완료되었을 때의 메시지 형태 예제이다.

...

메시지상으로 정상적인 종료를 수행하였음에도 불구하고 관련 프로세스가 여전히 존재할 시는 WebLogic 서버 인스턴스의 로그를 확인하여 조치하여야 한다.

 

JDBC 드라이버 설정

...

JDBC 데이터 소스 생성을 하기 위해서는 관련 JDBC 드라이버를 WebLogic에 설정하여야 한다. JDBC 드라이버 설정에 대한 전반적인 사항을 설명한다.

 

Altibase JDBC 드라이버를 얻는 방법

...

Altibase JDBC 드라이버는 Altibase.jar 라는 하나의 파일로 제공된다.

...

최신 Altibase JDBC 드라이버는 http://support.altibase.com을 통하여 얻을 수 있다. 

 

Altibase JDBC 드라이버 버전을 확인 하는 방법

...

연동하려는 Altibase와 Altibase JDBC 드라이버가 호환 가능한지 판단을 위해 Altibase와 Altibase JDBC 드라이버의 버전을 비교하여 CM(Communication) 프로토콜이 일치하는지 반드시 확인하여야 한다.

...

일반적으로 호환성을 위해 Altibase 패키지에 포함된 Altibase JDBC 드라이버 파일을 사용하나 가급적이면 호환 가능한 최신의 Altibase JDBC 드라이버 파일을 사용하는 것을 권장한다.

 

WebLogic에서 사용할 JDBC 드라이버를 설정하는 방법

...

WebLogic에서 특정 JDBC 드라이버를 사용하려면 관련 파일을 해당 도메인 관리 서버의 CLASSPATH에 추가해야 한다.

...

  1. $DOMAIN_HOME/lib에 JDBC 드라이버 관련 파일을 위치.
    각 도메인의 기본 라이브러리 경로인 $DOMAIN_HOME/lib에 JDBC 드라이버 관련 파일을 위치 후 해당 도메인의 관리 서버 구동하면 아래와 같은 메시지와 함께 해당 파일이 자동으로 CLASSPATH에 추가된다.

    Code Block
    themeDJango
    languagebash
    ... 
     <2010. 12. 14 오후 4시 48분 24초 KST> <Notice> <WebLogicServer> <BEA-000395> <Following extensions directory contents added to the end_of_the_classpath:C:\Oracle\Middleware\user_projects\domains\mydomain\lib\Altibase.jar;C:\Oracle\Middleware\user_projects\domains\mydomain\lib\Altibase5.jar> 
    ...
  2. startWebLogic.cmd 파일의 CLASSPATH에 JDBC 드라이버 관련 파일을 직접추가.
    각 도메인의 관리 서버 구동 스크립트 파일인 startWebLogic.cmd 를 open하여 CLASSPATH 항목에 JDBC 드라이버 관련 파일을 직접 추가 후 재구동 한다.

    Code Block
    themeDJango
    languagebash
    ... 
     set CLASSPATH=%SAVE_CLASSPATH%;C:\WebLogic_lib\Altibase5.jar;C:\WebLogic_lib\Altibase.jar 
    ...

 

Altibase와 WebLogic 연동

...

도메인 관리 콘솔을 사용하여 연동할 Altibase에 대한 JDBC 데이터 소스를 생성 후 해당 JDBC 데이터 소스를 사용하는 간단한 웹 응용프로그램을 실행하는 전체적인 연동 절차를 설명한다.

 

JDBC 데이터 소스 생성

...

Altibase에 대한 JDBC 데이터 소스를 생성하고 해당 JDBC 데이터 소스의 커넥션 풀을 설정하는 절차이다.

...

기본적으로 WebLogic에서 사용할 JDBC 드라이버를 설정하는 방법 을 참조하여 생성할 JDBC 데이터 소스에 대한 JDBC 드라이버 설정이 선행되어 있어야 한다.

 

JDBC 데이터 소스 생성

...

로컬에 설치된 Altibase에 대한 JDBC 데이터 소스 “altibase”를 생성한다.

...

13. JDBC 데이터 소스가 성공적으로 추가된 것을 확인한다. 

 

커넥션 풀 설정 변경

...

JDBC 데이터 소스를 생성하면 관련 커넥션 풀이 함께 생성이 된다. 커넥션 풀은 여러 가지 속성을 가지는데 필요 시 다음 절차를 참고하여 설정을 변경하도록 한다.

...

          기본적인 커넥션 풀의 개수로 기본값이 1이나 업무 부하를 고려하여 이보다는 큰 수치를 권장한다.

 

확인

...

JDBC 데이터 소스 생성의 성공 여부를 최종적으로 확인한다.

...

  • Altibase에서의 확인
    JDBC 데이터 소스의 접속 대상 ALTIBASE에서 세션 관련 쿼리를 수행, 설정한 커넥션 풀의 초기 용량만큼 세션이 존재하는지 확인한다.
    아래는 초기 용량을 10으로 지정한 경우의 실행 결과이다. JDBC 타입의 세션이 10개인 것을 확인할 수 있다.

    Code Block
    themeDJango
    languagesql
    CMD> isql -s 127.0.0.1 -u sys -p manager -port 20300 
     ----------------------------------------------------------------- 
          Altibase Client Query utility. 
          Release Version 5.3.3.12 
          Copyright 2000, ALTIBASE Corporation or its subsidiaries. 
          All Rights Reserved. 
     ----------------------------------------------------------------- 
     ISQL_CONNECTION = TCP, SERVER = 127.0.0.1, PORT_NO = 20300 
     iSQL> set linesize 200 
     iSQL> set colsize 20 
     iSQL> select comm_name, client_type, 
        2   db_username, id session_id from v$session; 
     COMM_NAME             CLIENT_TYPE   DB_USERNAME   SESSION_ID  
     -------------------------------------------------------------- 
     TCP 127.0.0.1:11274   JDBC          SYS           60          
     TCP 127.0.0.1:5126    JDBC          SYS           61          
     TCP 127.0.0.1:8710    JDBC          SYS           63          
     TCP 127.0.0.1:12294   JDBC          SYS           64          
     TCP 127.0.0.1:13318   JDBC          SYS           65          
     TCP 127.0.0.1:18694   JDBC          SYS           66          
     TCP 127.0.0.1:19462   JDBC          SYS           67          
     TCP 127.0.0.1:19974   JDBC          SYS           68          
     TCP 127.0.0.1:20486   JDBC          SYS           69          
     TCP 127.0.0.1:21254   JDBC          SYS           70          
     TCP 127.0.0.1:34311   CLI-32LE      SYS           72          
     11 rows selected.

 

웹 응용프로그램 생성 및 배치

...

연동을 위한 간략한 웹 응용프로그램을 생성하고 배치하는 예제이다.

 

웹 응용프로그램 생성

...

이름은 sample, 기본 페이지는 welcome.html 인 웹 응용프로그램을 생성한다.

...

Code Block
themeDJango
languagexml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
  <welcome-file-list>
     <welcome-file>welcome.html</welcome-file>
  </welcome-file-list>
</web-app>

 

배치

...

관리 콘솔에서 제공하는 배치 메뉴를 통하여 수동으로 직접 배치하여도 되나 편의상 개발 모드로 설치하였을 때 제공되는 $DOMAIN_HOME/autodeploy 를 통한 자동 배치를 활용한다.

...

2. 관리 콘솔 메인 페이지 좌측에 “배치” 메뉴를 선택하여 자동배치 여부를 확인한다. 

 

확인

...

웹 응용프로그램의 기본 페이지 예제를 통해 배치의 성공 여부를 최종적으로 확인한다.

...

 2. 생성한 페이지에 접근하여 출력결과를 확인한다.

 

연동 예제

...

JDBC 데이터 소스의 JNDI를 통하여 Altibase에 접속하는 예제를 수행함으로 Altibase와 연동이 성공적으로 되었는지 최종적으로 확인한다.

 

Altibase 연동

...

Altibase와 연동하는 웹 응용프로그램을 작성하여 접속 정보를 확인한다.

...

2. 생성한 페이지로 접근하여 연동 대상 Altibase의 정보가 이상 없이 출력되는지 확인한다. 

 

서로 다른 버전의 Altibase 연동

...

Altibase와 Altibase v5와 동시에 연동하는 웹 응용프로그램을 작성하여 접속 정보를 확인한다.

...

4. 생성한 페이지로 접근하여 연동 대상 ALTIBASE의 정보가 이상 없이 출력되는지 확인한다.

 

 

Fail-Over & Load-Balancing 설정

...

WebLogic 또는 ALTIBASE 에서 Fail-Over 및 Load-Balancing 을 설정하는 방법에 대해 설명한다.

 

WebLogic에서의 설정

...

다중 JDBC 데이터 소스 생성하면서 알고리즘으로 Fail-Over 또는 Load-Balancing 중 하나를 설정할 수 있다. 설정방법 및 상세한 내용은 관련 문서를 참조하도록 한다.

 

Fail-Over(장애조치)

...

접속 요청을 다중 JDBC 데이터 소스 목록의 첫 번째 JDBC 데이터 소스에 전송하고, 요청이 실패할 경우 다음 JDBC 데이터 소스에 전송하는 방식으로 진행한다. 이러한 과정은 적합한 접속을 얻거나 목록의 끝에 도달할 때까지 계속되며 목록이 끝날 때까지 접속을 얻지 못하면 예외가 발생한다.

 

Load-Balancing(로드 균형 조정)

...

접속 요청을 다중 JDBC 데이터 소스 목록의 데이터 소스에 골고루 배치한다. 이 알고리즘은 Fail-Over 알고리즘을 기본적으로 제공한다.

 

Altibase에서의 설정

...

Altibase v5.3.3부터 제공하는 라이브러리 계층의 Fail-Over 와 Load-Balancing을 이용하여 WebLogic과 연동하는 방법에 대해 설명한다.

설정방법 및 상세한 내용은 “ALTIBASE Replication 메뉴얼” 및 "ALTIBASE JDBC 메뉴얼"을 참조하도록 한다.

 

 

연동 오류

...

Altibase와 WebLogic 연동 시 발생할 수 있는 일반적인 오류에 대해서 설명한다.

 

Cannot load driver

...

JDBC 드라이버 설정이 정상적으로 완료되지 않은 상태에서 접속을 시도할 경우 발생한다.

WebLogic에서 사용할 JDBC 드라이버를 설정하는 방법 을 참조하도록 한다.

 

Can not make a database connection to the given URL / Invalid Altibase URL (No suitable driver)

...

아래와 같이 접속 URL에 오류가 있을 경우 오류가 발생한다.

  • 잘못된 형식, 오타
  • jdbc 항목을 “Altibase”가 아닌 다른 이름으로 설정한 경우 (이 경우는 버전에 따라 No suitable driver 가 발생하기도 한다.)

    jdbc:otherDBMS://127.0.0.1:20300/mydb

 

Could not create pool connection

...

JDBC 데이터 소스 생성 시 커넥션 풀 설정에 오류가 있을 때 발생한다. 다양한 경우가 있으나 대표적인 경우는 아래와 같다.

  • 접속 대상이 Altibase v4인 경우는 속성(property)에 “user=sys” 형식으로 접속할 사용자를 입력해야 한다.

 

Client unable to establish connection / Communication link failure

...

아래의 경우, Client unable to establish connection 오류가 발생한다. (버전에 따라 Communication link failure 가 발생하기도 한다.)

  • Altibase가 구동되어 있지 않는 경우
  • 접속 URL에서 Altibase의 ip 주소 또는 포트번호를 잘못 설정하여 접속이 불가능한 경우
    아래는 연동할 ALTIBASE 서버의 ip 주소가 192.168.1.81 이고 포트번호가 20300인데 다른 값으로 잘못 지정한 경우의 예이다.

    jdbc:Altibase://192.168.1.80:20800/mydb

Hang 현상

...

Altibase JDBC 드라이버와 Altibase의 CM 프로토콜 버전이 다른 상태에서 접속을 시도할 경우 WebLogic 버전에 따라 행(hang)과 같은 현상이 발생할 수도 있다.

...