14.2. JDBC 잠금 시스템 사용


14.2.1. 개요

JDBC 잠금 메커니즘은 Red Hat Fuse 인스턴스가 별도의 시스템에 존재하는 페일오버 배포용입니다.

이 시나리오에서는 마스터 인스턴스에는 데이터베이스에 호스팅되는 잠금 테이블에 대한 잠금이 있습니다. 마스터가 잠금을 끊으면 대기 중인 슬레이브 프로세스가 잠금 테이블에 대한 액세스 권한을 얻고 컨테이너를 완전히 시작합니다.

14.2.2. classpath에 JDBC 드라이버 추가

JDBC 잠금 시스템에서 JDBC 드라이버는 master/slave 설정의 각 인스턴스의 classpath에 있어야 합니다. 다음과 같이 JDBC 드라이버를 classpath에 추가합니다.

  1. JDBC 드라이버 JAR 파일을 각 Red Hat Fuse 인스턴스의 ESBInstallDir/lib/ext 디렉터리에 복사합니다.
  2. CLASSPATH 변수에 JDBC 드라이버 JAR을 포함하도록 bin/karaf 시작 스크립트를 수정합니다.

    예를 들어 JDBC JAR 파일 JDBCJarFile.jar 가 제공되는 경우 다음과 같이 시작 스크립트를 수정할 수 있습니다 (*NIX 운영 체제).

        ...
        # Add the jars in the lib dir
        for file in "$KARAF_HOME"/lib/karaf*.jar
        do
            if [ -z "$CLASSPATH" ]; then
                CLASSPATH="$file"
            else
                CLASSPATH="$CLASSPATH:$file"
            fi
        done
        CLASSPATH="$CLASSPATH:$KARAF_HOME/lib/JDBCJarFile.jar"
    참고

    MySQL 드라이버 JAR 또는 PostgreSQL 드라이버 JAR을 추가하는 경우 karaf- 접두사를 추가하여 드라이버 JAR의 이름을 변경해야합니다. 그렇지 않으면 Apache Karaf가 중단되고 로그에 Apache Karaf가 드라이버를 찾을 수 없음을 알려줍니다.

14.2.3. JDBC 잠금 시스템 구성

JDBC 잠금 시스템을 구성하려면 다음과 같이 마스터/슬레이브 배포에서 각 인스턴스에 대해 etc/system.properties 파일을 업데이트하십시오.

예 14.2. JDBC 잠금 파일 구성

karaf.lock=true
karaf.lock.class=org.apache.karaf.main.lock.DefaultJDBCLock
karaf.lock.level=50
karaf.lock.delay=10000
karaf.lock.jdbc.url=jdbc:derby://dbserver:1527/sample
karaf.lock.jdbc.driver=org.apache.derby.jdbc.ClientDriver
karaf.lock.jdbc.user=user
karaf.lock.jdbc.password=password
karaf.lock.jdbc.table=KARAF_LOCK
karaf.lock.jdbc.clustername=karaf
karaf.lock.jdbc.timeout=30

이 예제에서는 sample이라는 데이터베이스가 아직 없는 경우 생성됩니다. 잠금 테이블을 얻는 첫 번째 Red Hat Fuse 인스턴스는 마스터 인스턴스입니다. 데이터베이스에 대한 연결이 손실되면 마스터 인스턴스에서 정상적으로 종료하여 데이터베이스 서비스가 복원될 때 슬레이브 인스턴스가 마스터가 될 수 있도록 합니다. 이전 마스터는 수동 재시작이 필요합니다.

14.2.4. Oracle에서 JDBC 잠금 구성

JDBC 잠금 시나리오에서 Oracle을 데이터베이스로 사용하는 경우 etc/system.properties 파일의 karaf.lock.class 속성은 org.apache.karaf.main.lock.OracleJDBCLock 을 가리켜야 합니다.

또는 다음과 같이 system.properties 파일을 설정에 대해 정상적으로 구성합니다.

예 14.3. Oracle JDBC 잠금 파일 구성

karaf.lock=true
karaf.lock.class=org.apache.karaf.main.lock.OracleJDBCLock
karaf.lock.jdbc.url=jdbc:oracle:thin:@hostname:1521:XE
karaf.lock.jdbc.driver=oracle.jdbc.OracleDriver
karaf.lock.jdbc.user=user
karaf.lock.jdbc.password=password
karaf.lock.jdbc.table=KARAF_LOCK
karaf.lock.jdbc.clustername=karaf
karaf.lock.jdbc.timeout=30
참고

karaf.lock.jdbc.url 에는 활성 Oracle 시스템 ID(SID)가 필요합니다. 즉, 이 특정 잠금을 사용하기 전에 데이터베이스 인스턴스를 수동으로 생성해야 합니다.

14.2.5. Derby에서 JDBC 잠금 구성

JDBC 잠금 시나리오에서 Derby를 데이터베이스로 사용하는 경우 etc/system.properties 파일의 karaf.lock.class 속성은 org.apache.karaf.main.lock.DerbyJDBCLock 를 가리켜야 합니다. 예를 들어 다음과 같이 system.properties 파일을 구성할 수 있습니다.

예 14.4. Derby의 JDBC 잠금 파일 구성

karaf.lock=true
karaf.lock.class=org.apache.karaf.main.lock.DerbyJDBCLock
karaf.lock.jdbc.url=jdbc:derby://127.0.0.1:1527/dbname
karaf.lock.jdbc.driver=org.apache.derby.jdbc.ClientDriver
karaf.lock.jdbc.user=user
karaf.lock.jdbc.password=password
karaf.lock.jdbc.table=KARAF_LOCK
karaf.lock.jdbc.clustername=karaf
karaf.lock.jdbc.timeout=30

14.2.6. MySQL에서 JDBC 잠금 구성

JDBC 잠금 시나리오에서 MySQL을 데이터베이스로 사용하는 경우 etc/system.properties 파일의 karaf.lock.class 속성은 org.apache.karaf.main.lock.MySQLJDBCLock 을 가리켜야 합니다. 예를 들어 다음과 같이 system.properties 파일을 구성할 수 있습니다.

예 14.5. MySQL의 JDBC 잠금 파일 구성

karaf.lock=true
karaf.lock.class=org.apache.karaf.main.lock.MySQLJDBCLock
karaf.lock.jdbc.url=jdbc:mysql://127.0.0.1:3306/dbname
karaf.lock.jdbc.driver=com.mysql.jdbc.Driver
karaf.lock.jdbc.user=user
karaf.lock.jdbc.password=password
karaf.lock.jdbc.table=KARAF_LOCK
karaf.lock.jdbc.clustername=karaf
karaf.lock.jdbc.timeout=30

14.2.7. PostgreSQL에서 JDBC 잠금 구성

JDBC 잠금 시나리오에서 PostgreSQL을 데이터베이스로 사용하는 경우 etc/system.properties 파일의 karaf.lock.class 속성은 org.apache.karaf.main.lock.PostgreSQLJDBCLock 을 가리켜야 합니다. 예를 들어 다음과 같이 system.properties 파일을 구성할 수 있습니다.

예 14.6. PostgreSQL에 대한 JDBC 잠금 파일 구성

karaf.lock=true
karaf.lock.class=org.apache.karaf.main.lock.PostgreSQLJDBCLock
karaf.lock.jdbc.url=jdbc:postgresql://127.0.0.1:5432/dbname
karaf.lock.jdbc.driver=org.postgresql.Driver
karaf.lock.jdbc.user=user
karaf.lock.jdbc.password=password
karaf.lock.jdbc.table=KARAF_LOCK
karaf.lock.jdbc.clustername=karaf
karaf.lock.jdbc.timeout=0

14.2.8. JDBC 잠금 클래스

다음 JDBC 잠금 클래스는 현재 Apache Karaf에서 제공합니다.

org.apache.karaf.main.lock.DefaultJDBCLock
org.apache.karaf.main.lock.DerbyJDBCLock
org.apache.karaf.main.lock.MySQLJDBCLock
org.apache.karaf.main.lock.OracleJDBCLock
org.apache.karaf.main.lock.PostgreSQLJDBCLock
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.