Sun Java System Application Server Enterprise Edition 8.1 2005Q2 관리 설명서

3장 JDBC 자원

이 장에서는 데이터베이스에 액세스하는 응용 프로그램에서 필요한 JDBC 자원을 구성하는 방법에 대해 설명합니다. 이 장은 다음 내용으로 구성되어 있습니다.

JDBC 자원 및 연결 풀 정보

JDBC 자원

데이터 저장과 구성 및 검색을 위해 대부분의 응용 프로그램은 관계형 데이터베이스를 사용합니다. J2EE 응용 프로그램은 JDBC API를 통해 관계형 데이터베이스에 액세스합니다.

JDBC 자원(데이터 소스)은 응용 프로그램에 데이터베이스 연결 수단을 제공합니다. 일반적으로 관리자는 도메인에 배포된 응용 프로그램에서 액세스한 데이터베이스마다 JDBC 자원을 만듭니다. 그러나 한 데이터베이스에 대해 JDBC 자원을 여러 개 만들 수 있습니다.

JDBC 자원을 만들려면 해당 자원을 식별하는 고유한 JNDI 이름을 지정합니다. JNDI 이름 및 자원 절을 참조하십시오. java:comp/env/jdbc 하위 컨텍스트에서 JDBC 자원의 JNDI 이름을 찾을 수 있습니다. 예를 들어, 급여 데이터베이스의 자원에 대한 JNDI 이름은 java:comp/env/jdbc/payrolldb일 수 있습니다. 모든 자원 JNDI 이름이 java:comp/env 하위 컨텍스트로 되어 있기 때문에 관리 콘솔에서 JDBC 자원의 JNDI 이름을 지정할 때 jdbc/name만 입력합니다. 예를 들어, 급여 데이터베이스의 경우 jdbc/payrolldb를 지정합니다.

JDBC 연결 풀

JDBC 자원을 만들려면 연관된 연결 풀을 지정하십시오. 여러 JDBC 자원이 단일 연결 풀을 지정할 수 있습니다.

JDBC 연결 풀은 특정 데이터베이스에 대해 재사용 가능한 연결 그룹입니다. 새로운 물리적 연결을 만드는 데 시간이 많이 소모되기 때문에 서버에서는 사용 가능한 연결 풀을 유지 관리하여 성능을 증가시킵니다. 응용 프로그램은 연결을 요청할 때 풀에서 연결을 가져옵니다. 응용 프로그램에서 연결을 닫으면 연결이 풀로 반환됩니다.

연결 풀의 등록 정보는 데이터베이스 공급업체에 따라 다를 수 있습니다. 일부 공통된 등록 정보는 데이터베이스 이름(URL), 사용자 이름 및 비밀번호입니다.

JDBC 자원 및 연결 풀을 함께 작업하는 방법

데이터 저장과 구성 및 검색을 위해 대부분의 응용 프로그램은 관계형 데이터베이스를 사용합니다. J2EE 응용 프로그램은 JDBC API를 통해 관계형 데이터베이스에 액세스합니다. 데이터베이스에 액세스하려면 먼저 응용 프로그램에서 연결해야 합니다.

런타임 시 응용 프로그램이 데이터베이스에 연결할 경우 다음과 같은 현상이 발생합니다.

  1. 응용 프로그램이 JNDI API를 통해 호출하여 데이터베이스에 연관된 JDBC 자원(데이터 소스)을 가져옵니다.

    자원의 JNDI 이름으로 이름 지정 및 디렉토리 서비스에서 JDBC 자원을 찾습니다. JDBC 자원마다 연결 풀을 지정합니다.

  2. JDBC 자원을 통해 응용 프로그램은 데이터베이스 연결을 가져옵니다.

    반면, Application Server는 데이터베이스에 해당하는 연결 풀에서 물리적인 연결을 검색합니다. 풀은 데이터베이스 이름(URL), 사용자 이름 및 비밀번호 같은 연결 속성을 정의합니다.

  3. 이제 데이터베이스에 연결되어 응용 프로그램에서 데이터베이스의 데이터를 읽고 수정하며 추가할 수 있습니다.

    응용 프로그램이 JDBC API를 호출하여 데이터베이스에 액세스합니다. JDBC 드라이버가 응용 프로그램의 JDBC 호출을 데이터베이스 서버의 프로토콜로 변환합니다.

  4. 데이터베이스 액세스를 완료하면 응용 프로그램에서 연결을 닫습니다.

    Application Server가 연결을 연결 풀로 반환합니다. 연결이 풀로 반환되면 다음 응용 프로그램에 연결을 사용할 수 있습니다.

데이터베이스 액세스 설정

Procedure데이터베이스 액세스를 설정하는 방법

  1. 지원되는 데이터베이스 제품을 설치합니다.

    Application Server가 지원하는 데이터베이스 제품 목록에 대한 자세한 내용은 릴리스 노트를 참조하십시오.

  2. 데이터베이스 제품용 JDBC 드라이버를 설치합니다.

  3. 드라이버의 JAR 파일이 도메인의 서버 인스턴스에 액세스할 수 있게 합니다. JDBC 드라이버를 통합하는 방법을 참조하십시오.

  4. 데이터베이스를 만듭니다.

    대개, 응용 프로그램 공급자가 데이터베이스를 만들고 채우는 스크립트를 제공합니다.

  5. 데이터베이스의 연결 풀을 만듭니다. JDBC 연결 풀을 만드는 방법을 참조하십시오.

  6. 연결 풀을 가리키는 JDBC 자원을 만듭니다. JDBC 자원을 만드는 방법을 참조하십시오.

ProcedureJDBC 드라이버를 통합하는 방법

JDBC 드라이버는 응용 프로그램의 JDBC 호출을 데이터베이스 서버의 프로토콜로 변환합니다.

  1. JDBC 드라이버를 관리 도메인에 통합하려면 다음 중 하나를 수행합니다.

    • 드라이버가 공통 클래스 로더에 액세스할 수 있게 합니다.

      1. 드라이버의 JAR 및 ZIP 파일을 domain-dir/lib 디렉토리로 복사하거나 해당 클래스 파일을 domain-dir/lib/ext 디렉토리로 복사합니다.

      2. 도메인을 다시 시작합니다.

    • 드라이버가 시스템 클래스 로더에 액세스할 수 있게 합니다.

      1. 관리 콘솔의 트리 보기(왼쪽 창)에서 구성을 선택합니다.

      2. 원하는 구성(예: default-config)을 선택합니다.

      3. JVM 설정을 선택합니다.

      4. JVM 설정 페이지에서 경로 설정 탭을 누릅니다.

      5. 클래스 경로 접미어 필드에서 드라이버의 JAR 파일에 대한 정규화된 경로 이름을 입력합니다.

      6. 저장을 누릅니다.

      7. 서버를 다시 시작합니다.

JDBC 연결 풀 정보

ProcedureJDBC 연결 풀을 만드는 방법

JDBC 연결 풀은 특정 데이터베이스에 대해 재사용 가능한 연결 그룹입니다. 관리 콘솔에서 풀을 만들 때 관리자가 특정 데이터베이스에 대한 연결 부분을 실제로 정의합니다.

시작하기 전에

풀을 만들기 전에 먼저 JDBC 드라이버를 설치 및 통합해야 합니다. JDBC 드라이버를 통합하는 방법을 참조하십시오.

연결 풀 만들기 페이지를 구축할 때 JDBC 드라이버와 관련된 특정 데이터와 데이터베이스 공급업체를 입력해야 합니다. 계속하기 전에 다음 정보를 수집합니다.

  1. 관리 콘솔의 트리 보기(왼쪽 창)에서 자원 노드를 확장합니다.

  2. 자원에서 JDBC 노드를 확장합니다.

  3. JDBC에서 연결 풀 노드를 선택합니다.

  4. 연결 풀 페이지에서 새로 만들기를 누릅니다.

  5. 연결 풀 만들기 첫 번째 페이지에서 다음과 같은 일반 설정을 지정합니다.

    1. 이름 필드에서 풀의 논리 이름을 입력합니다.

      JDBC 자원을 만들 때 이 이름을 지정합니다.

    2. 자원 유형 콤보 상자에서 항목을 선택합니다.

    3. 데이터베이스 공급업체 콤보 상자에서 항목을 선택합니다.

  6. 다음을 누릅니다.

  7. 연결 풀 만들기 두 번째 페이지에서 데이터 소스 클래스 이름 필드에 대한 값을 지정합니다.

    JDBC 드라이버에 이전 페이지에서 자원 유형과 데이터베이스 공급업체에 대한 데이터 소스 클래스를 지정했을 경우 데이터 소스 클래스 이름 필드의 값이 제공됩니다.

  8. 다음을 누릅니다.

  9. 연결 풀 만들기 세 번째이자 마지막 페이지에서 다음 작업을 수행합니다.

    1. 일반 설정 섹션에서 값이 올바른지 확인합니다.

    2. 풀 설정, 연결 검증 및 트랜잭션 격리 섹션에 있는 필드의 경우 기본값을 유지합니다.

      나중에 이 설정을 변경하는 것이 가장 편리합니다. JDBC 연결 풀을 편집하는 방법을 참조하십시오.

    3. 추가 등록 정보 표에서 데이터베이스 이름(URL), 사용자 이름 및 비밀번호 같은 필수 등록 정보를 추가합니다.

  10. 마침을 누릅니다.

해당 asadmin 명령

create-jdbc-connection-pool

ProcedureJDBC 연결 풀을 편집하는 방법

JDBC 연결 풀 편집 페이지에서 이름을 제외한 기존 풀의 모든 설정을 변경할 수 있는 방법을 제공합니다.

  1. 트리 구성 요소에서 자원 노드를 확장합니다.

  2. 자원에서 JDBC 노드를 확장합니다.

  3. JDBC에서 연결 풀 노드를 확장합니다.

  4. 편집할 풀의 노드를 선택합니다.

  5. JDBC 연결 풀 편집 페이지에서 필요한 사항을 변경합니다.

    1. 일반 설정을 변경합니다.

      일반 설정 값은 설치된 특정 JDBC 드라이버에 따라 다릅니다. 이 설정은 Java 프로그래밍 언어로 된 인터페이스나 클래스의 이름입니다.

      매개 변수 

      설명 

      데이터 소스 클래스 이름 

      DataSource 및/또는 XADataSource API를 구현하는 공급업체별 클래스 이름입니다. 이 클래스는 JDBC 드라이버에 있습니다.

      자원 유형 

      선택 항목에는 javax.sql.DataSource(로컬 트랜잭션에만 해당), javax.sql.XADataSource(전역 트랜잭션) 및 java.sql.ConnectionPoolDataSource(로컬 트랜잭션, 성능 향상 가능)가 포함됩니다.

    2. 풀 설정을 변경합니다.

      물리적 데이터베이스 연결 집합은 풀에 상주합니다. 응용 프로그램에서 연결을 요청하면 풀에서 연결이 제거되고 응용 프로그램에서 연결을 해제하면 연결이 풀로 반환됩니다.

      매개 변수 

      설명 

      초기 및 최소 풀 크기 

      풀의 최소 연결 수입니다. 풀 값에 따라 풀을 먼저 작성하거나 응용 프로그램 서버를 시작할 때 풀에 있는 연결 수도 결정합니다. 

      최대 풀 크기 

      풀의 최대 연결 수입니다. 

      풀 크기 조정 개수 

      풀이 최소 풀 크기로 줄어들 경우 일괄적으로 크기가 조정됩니다. 이 값은 일괄적으로 처리할 연결 수를 지정합니다. 이 값을 너무 크게 하면 연결 재순환이 지체되며, 너무 작게 하면 효율성이 떨어집니다. 

      유휴 시간 초과  

      풀에서 연결이 유휴 상태로 있을 수 있는 최대 시간(초)입니다. 이 시간이 만료되면 연결이 풀에서 제거됩니다. 

      최대 대기 시간 

      연결을 요청한 응용 프로그램이 연결 시간 초과까지 대기하는 시간입니다. 기본 대기 시간이 길기 때문에 응용 프로그램이 무기한 중지될 수 있습니다. 

    3. 연결 검증 설정을 변경합니다.

      선택에 따라 Application Server는 연결을 응용 프로그램에 전달하기 전에 연결을 검증할 수 있습니다. 이렇게 검증을 하면 네트워크 실패나 데이터베이스 서버 충돌로 인해 데이터베이스를 사용할 수 없는 경우 Application Server가 데이터베이스 연결을 자동으로 다시 설정합니다. 연결 검증을 수행하면 추가 오버헤드가 발생하여 성능이 약간 저하됩니다.

      매개 변수 

      설명 

      연결 검증 

      연결 검증을 활성화하려면 필수 확인란을 선택합니다. 

      검증 방법  

      Application Server는 데이터베이스 연결을 자동 완결, 메타데이터 및 테이블의 세 가지 방법으로 검증할 수 있습니다. 

      자동 완결 및 메타데이터 - Application Server는 con.getAutoCommit()con.getMetaData() 메소드를 호출하여 연결을 검증합니다. 그러나, 많은 JDBC 드라이버에서 이러한 호출의 결과를 캐시하기 때문에 항상 신뢰할 수 있는 검증을 제공하는 것은 아닙니다. 이러한 호출의 캐시 여부를 판단하려면 드라이버 공급업체에 확인합니다.

      테이블 - 응용 프로그램에서 지정된 데이터베이스 테이블을 쿼리합니다. 테이블이 반드시 필요하며 액세스할 수 있어야 하지만 행은 없어도 됩니다. 행이 많이 있는 기존 테이블이나 이미 자주 액세스하는 테이블은 사용하지 마십시오.  

      테이블 이름 

      검증 방법 콤보 상자에서 테이블을 선택한 경우 여기에서 데이터베이스 테이블 이름을 지정합니다. 

      실패 시 

      모든 연결 닫기 확인란을 선택한 경우 연결이 한 번 실패하면 Application Server는 풀의 모든 연결을 닫고 연결을 다시 설정합니다. 이 확인란을 선택하지 않으면 개별 연결을 사용할 경우에만 연결이 다시 설정됩니다. 

    4. 트랜잭션 격리 설정을 변경합니다.

      대개 많은 사용자가 동시에 데이터베이스에 액세스하기 때문에 한 트랜잭션에서 데이터를 읽는 동안 다른 트랜잭션에서 해당 데이터를 업데이트할 수 있습니다. 트랜잭션의 격리 수준은 업데이트되는 데이터를 다른 트랜잭션에 표시하는 정도를 정의합니다. 격리 수준에 대한 자세한 내용은 데이터베이스 공급업체의 설명서를 참조하십시오.

      매개 변수 

      설명 

      트랜잭션 격리 

      이 풀의 연결에 대한 트랜잭션 격리 수준을 선택할 수 있게 합니다. 이 확인란을 선택하지 않으면 연결은 JDBC 드라이버에서 제공하는 기본 격리 수준으로 실행됩니다. 

      격리 수준 보장 

      격리 수준이 지정된 경우에만 적용할 수 있습니다. 보장 확인란이 선택된 경우 풀에서 가져온 모든 연결은 동일한 격리 수준을 갖게 됩니다. 예를 들어, 마지막으로 사용 시 연결의 격리 수준을 프로그래밍 방식으로 변경한 경우(예: con.setTransactionIsolation 사용) 이 메커니즘은 상태를 지정한 격리 수준으로 다시 변경합니다.

    5. 등록 정보를 변경합니다.

      추가 등록 정보 테이블에서 데이터베이스 이름(URL), 사용자 이름 및 비밀번호 같은 등록 정보를 지정할 수 있습니다. 데이터베이스 공급업체에 따라 등록 정보가 다르기 때문에 자세한 내용은 공급업체의 설명서를 참조하십시오.

  6. 저장을 누릅니다.

참조

Procedure연결 풀 설정을 검증하는 방법

  1. 데이터베이스 서버를 시작합니다.

  2. 핑을 누릅니다.

    관리 콘솔에서 데이터베이스에 연결을 시도합니다. 오류 메시지가 표시되면 데이터베이스 서버가 다시 시작되었는지 확인합니다.

ProcedureJDBC 연결 풀을 삭제하는 방법

  1. 트리 구성 요소에서 자원 노드를 확장합니다.

  2. 자원에서 JDBC 노드를 확장합니다.

  3. JDBC에서 연결 풀 노드를 선택합니다.

  4. 연결 풀 페이지에서 삭제할 풀의 확인란을 선택합니다.

  5. 삭제를 누릅니다.

해당 asadmin 명령

delete-jdbc-connection-pool

JDBC 자원 정보

ProcedureJDBC 자원을 만드는 방법

JDBC 자원(데이터 소스)은 응용 프로그램에 데이터베이스 연결 수단을 제공합니다.

시작하기 전에

JDBC 자원을 만들기 전에 먼저 JDBC 연결 풀을 만드십시오. JDBC 연결 풀을 만드는 방법을 참조하십시오.

  1. 트리 구성 요소에서 자원 노드를 확장합니다.

  2. 자원에서 JDBC 노드를 확장합니다.

  3. JDBC에서 JDBC 자원 노드를 선택합니다.

  4. JDBC 자원 페이지에서 새로 만들기를 누릅니다.

  5. JDBC 자원 만들기 페이지에서 자원 설정을 지정합니다.

    1. JNDI 이름 필드에서 고유한 이름을 입력합니다.

      일반적으로 이 이름은 jdbc/ 문자열로 시작합니다. 예를 들면 다음과 같습니다. jdbc/payrolldb. 슬래시를 반드시 입력합니다.

    2. 풀 이름 콤보 상자에서 새로운 JDBC 자원과 연관시킬 연결 풀을 선택합니다.

    3. 자원을 사용할 수 없게 하려면 사용 확인란을 선택 해제합니다.

      기본적으로 자원은 만들자마자 사용(활성화)할 수 있습니다.

    4. 설명 필드에 자원에 대한 간단한 설명을 입력합니다.

    5. 대상 섹션에서 자원을 사용할 수 있는 대상(클러스터 및 독립 실행형 서버 인스턴스)을 지정합니다.

      왼쪽에서 원하는 대상을 선택하고 추가를 눌러 선택한 대상 목록에 추가합니다.

  6. 확인을 누릅니다.

해당 asadmin 명령

create-jdbc-resource

ProcedureJDBC 자원을 편집하는 방법

  1. 트리 구성 요소에서 자원 노드를 확장합니다.

  2. 자원에서 JDBC 노드를 확장합니다.

  3. JDBC에서 JDBC 자원 노드를 확장합니다.

  4. 편집할 JDBC 자원의 노드를 선택합니다.

  5. JDBC 자원 편집 페이지에서 다음 작업을 수행할 수 있습니다.

    1. 풀 이름 콤보 상자에서 다른 연결 풀을 선택합니다.

    2. 설명 필드에서 자원에 대한 간단한 설명을 변경합니다.

    3. 자원을 사용하거나 사용 불가능하게 하려면 확인란을 선택하거나 선택 해제합니다.

    4. 자원을 사용할 수 있는 대상(클러스터 및 독립 실행형 서버 인스턴스)을 변경하려면 대상 탭을 선택합니다.

      목록의 기존 대상에 대한 확인란을 선택한 다음 활성화를 눌러 해당 대상의 자원을 활성화하거나 비활성화를 눌러 해당 대상의 자원을 비활성화합니다.

      대상 관리를 눌러 대상을 목록에 추가하거나 제거합니다. 대상 관리 페이지의 왼쪽에 있는 사용 가능 목록에서 원하는 대상을 선택하고 추가를 눌러 선택된 대상 목록에 추가합니다. 제거를 눌러 선택된 목록에서 대상을 제거합니다.

      확인을 눌러 변경 사항을 사용 가능한 대상에 저장합니다.

  6. 저장을 눌러 편집한 내용을 적용합니다.

ProcedureJDBC 자원을 삭제하는 방법

  1. 트리 구성 요소에서 자원 노드를 확장합니다.

  2. 자원에서 JDBC 노드를 확장합니다.

  3. JDBC에서 연결 풀 노드를 선택합니다.

  4. 연결 풀 페이지에서 삭제할 풀의 확인란을 선택합니다.

  5. 삭제를 누릅니다.

ProcedureJDBC 자원을 활성화하거나 비활성화하는 방법

  1. 트리 구성 요소에서 JDBC 자원 노드를 확장하거나 독립 실행형 인스턴스를 확장하여 서버 인스턴스 노드 자원 탭을 선택합니다.

  2. 자원 페이지에서 활성화하거나 비활성화할 자원의 확인란을 선택합니다.

  3. 활성화 또는 비활성화를 누릅니다.

지속성 관리자 자원 정보

Procedure지속성 관리자 자원을 만드는 방법

이 기능은 역방향 호환성을 위해 필요합니다. Application Server의 버전 7에서 컨테이너 관리 지속성 Bean(EJB 구성 요소 유형)이 있는 응용 프로그램을 실행하기 위해서는 지속성 관리자 자원이 필요했습니다. 대신 JDBC 자원을 사용하는 것이 좋습니다.

  1. 트리 구성 요소에서 자원 노드를 확장합니다.

  2. 자원에서 지속성 관리자 노드를 선택합니다.

  3. 지속성 관리자 페이지에서 새로 만들기를 누릅니다.

  4. 지속성 관리자 만들기 페이지에서 다음 설정을 지정합니다.

    1. JNDI 이름 필드에서 고유한 이름을 입력합니다.

      예를 들면 다음과 같습니다. jdo/mypm. 슬래시를 반드시 입력합니다.

    2. 팩토리 클래스 필드에서 이 릴리스와 함께 제공된 기본 클래스를 유지하거나 다른 구현 클래스를 입력합니다.

    3. 연결 풀 콤보 상자에서 새로운 지속성 관리자 자원이 속할 연결 풀을 선택합니다.

    4. 새 지속성 관리자 자원을 비활성화하려면 사용 확인란을 선택 해제합니다.

      기본적으로 새로운 지속성 관리자 자원은 활성화됩니다.

    5. 대상 섹션에서 자원을 사용할 수 있는 대상(클러스터 및 독립 실행형 서버 인스턴스)을 지정합니다.

      왼쪽에서 원하는 대상을 선택하고 추가를 눌러 선택한 대상 목록에 추가합니다.

  5. 확인을 누릅니다.

해당 asadmin 명령

create-persistence-resource

Procedure지속성 관리자 자원을 편집하는 방법

  1. 지속성 관리자 등록 정보 편집 탭에서 등록 정보 추가 버튼을 선택합니다.

    새로운 행이 추가 등록 정보 테이블에 추가됩니다.

  2. 원하는 등록 정보와 값을 추가합니다.

Procedure자원 대상을 관리하는 방법

  1. 대상 탭을 선택하여 자원이 상주하는 대상(클러스터 및 독립 실행형 서버 인스턴스)을 변경합니다.

  2. 목록의 기존 대상에 대한 확인란을 선택한 다음 활성화를 눌러 해당 대상의 자원을 활성화하거나 비활성화를 눌러 해당 대상의 자원을 비활성화합니다.

  3. 대상 관리를 눌러 대상을 목록에 추가하거나 제거합니다.

    대상 관리 페이지의 왼쪽에 있는 사용 가능 목록에서 원하는 대상을 선택하고 추가를 눌러 선택된 대상 목록에 추가합니다. 제거를 눌러 선택된 목록에서 대상을 제거합니다.

  4. 확인을 눌러 변경 사항을 사용 가능한 대상에 저장합니다.

  5. 저장을 누릅니다.

Procedure지속성 관리자 자원을 삭제하는 방법

  1. 트리 구성 요소에서 지속성 관리자 노드를 확장합니다.

  2. 지속성 관리자 노드를 선택합니다.

  3. 지속성 관리자 페이지에서 삭제할 지속성 관리자의 확인란을 선택합니다.

  4. 삭제를 누릅니다.

해당 asadmin 명령

delete-persistence-resource

Procedure지속성 관리자 자원을 활성화하거나 비활성화하는 방법

  1. 트리 구성 요소에서 지속성 관리자 노드를 확장합니다.

  2. 활성화하거나 비활성화할 자원의 확인란을 선택합니다.

  3. 활성화 또는 비활성화를 누릅니다.