6.3. JDBC 지속성 구성


JDBC 지속성 저장소는 JDBC 연결을 사용하여 데이터베이스 테이블에 메시지 및 바인딩 데이터를 저장합니다. 테이블의 데이터는 AMQ Broker 저널 인코딩을 사용하여 인코딩됩니다. 지원되는 데이터베이스에 대한 자세한 내용은 Red Hat 고객 포털의 Red Hat AMQ 7 지원 구성 을 참조하십시오.

참고

관리자는 조직의 광범위한 IT 인프라의 요구 사항에 따라 메시징 데이터를 데이터베이스에 저장하도록 선택할 수 있습니다. 그러나 데이터베이스를 사용하면 메시징 시스템의 성능에 부정적인 영향을 미칠 수 있습니다. 특히 JDBC를 통해 데이터베이스 테이블에 메시징 데이터를 작성하면 브로커에 대한 심각한 성능 오버헤드가 발생합니다.

절차

  1. 적절한 JDBC 클라이언트 라이브러리를 브로커 런타임에 추가합니다. 관련 jar를 BROKER_INSTANCE_DIR/lib 디렉토리에 추가하여 이 작업을 수행할 수 있습니다.
  2. 아래 예제와 같이 BROKER_INSTANCE_DIR/etc/broker.xml 구성 파일에 store 요소를 생성합니다.

    <configuration>
      <core>
        <store>
           <database-store>
              <jdbc-connection-url>jdbc:oracle:data/oracle/database-store;create=true</jdbc-connection-url>
              <jdbc-user>ENC(5493dd76567ee5ec269d11823973462f)</jdbc-user>
              <jdbc-password>ENC(56a0db3b71043054269d11823973462f)</jdbc-password>
              <bindings-table-name>BINDINGS_TABLE</bindings-table-name>
              <message-table-name>MESSAGE_TABLE</message-table-name>
              <large-message-table-name>LARGE_MESSAGES_TABLE</large-message-table-name>
              <page-store-table-name>PAGE_STORE_TABLE</page-store-table-name>
              <node-manager-store-table-name>NODE_MANAGER_TABLE</node-manager-store-table-name>
              <jdbc-driver-class-name>oracle.jdbc.driver.OracleDriver</jdbc-driver-class-name>
              <jdbc-network-timeout>10000</jdbc-network-timeout>
              <jdbc-lock-renew-period>2000</jdbc-lock-renew-period>
              <jdbc-lock-expiration>20000</jdbc-lock-expiration>
              <jdbc-journal-sync-period>5</jdbc-journal-sync-period>
           </database-store>
        </store>
      </core>
    </configuration>
    jdbc-connection-url
    데이터베이스 서버의 전체 JDBC 연결 URL입니다. 연결 URL에는 모든 구성 매개 변수와 데이터베이스 이름이 포함되어야 합니다.
    jdbc-user
    데이터베이스 서버의 암호화된 사용자 이름입니다. 구성 파일에 사용할 사용자 이름 및 암호를 암호화하는 방법에 대한 자세한 내용은 5.9절. “구성 파일의 암호 암호화” 을 참조하십시오.
    jdbc-password
    데이터베이스 서버의 암호화된 암호입니다. 구성 파일에 사용할 사용자 이름 및 암호를 암호화하는 방법에 대한 자세한 내용은 5.9절. “구성 파일의 암호 암호화” 을 참조하십시오.
    bindings-table-name
    바인딩 데이터가 저장되는 테이블의 이름입니다. 이 테이블 이름을 지정하면 간섭없이 여러 서버 간에 단일 데이터베이스를 공유할 수 있습니다.
    message-table-name
    메시지 데이터가 저장되는 테이블의 이름입니다. 이 테이블 이름을 지정하면 간섭없이 여러 서버 간에 단일 데이터베이스를 공유할 수 있습니다.
    large-message-table-name
    대용량 메시지 및 관련 데이터가 유지되는 테이블의 이름입니다. 또한 클라이언트가 청크로 큰 메시지를 스트리밍하는 경우 청크는 이 테이블에 저장됩니다. 이 테이블 이름을 지정하면 간섭없이 여러 서버 간에 단일 데이터베이스를 공유할 수 있습니다.
    page-store-table-name
    paged store 디렉토리 정보가 저장된 테이블의 이름입니다. 이 테이블 이름을 지정하면 간섭없이 여러 서버 간에 단일 데이터베이스를 공유할 수 있습니다.
    node-manager-store-table-name
    실시간 및 백업 브로커에 대한 공유 저장소 HA(고가용성) 잠금 및 기타 HA 관련 데이터가 브로커 서버에 저장되는 테이블의 이름입니다. 이 테이블 이름을 지정하면 간섭없이 여러 서버 간에 단일 데이터베이스를 공유할 수 있습니다. 공유 저장소 HA를 사용하는 각 라이브 백업 쌍은 동일한 테이블 이름을 사용해야 합니다. 여러 (및 관련이 없는) 실시간 백업 쌍 간에 동일한 테이블을 공유할 수 없습니다.
    jdbc-driver-class-name
    JDBC 데이터베이스 드라이버의 정규화된 클래스 이름입니다. 지원되는 데이터베이스에 대한 자세한 내용은 Red Hat 고객 포털의 Red Hat AMQ 7 지원 구성 을 참조하십시오.
    jdbc-network-timeout
    JDBC 네트워크 연결 시간 초과(밀리초). 기본값은 20000밀리초입니다. 공유 저장소 HA에 JDBC를 사용하는 경우 시간 제한을 jdbc-lock-expiration 보다 작거나 같은 값으로 설정하는 것이 좋습니다.
    jdbc-lock-renew-period
    현재 JDBC 잠금에 대한 갱신 기간의 길이(밀리초)입니다. 이 시간이 지나면 브로커가 잠금을 갱신할 수 있습니다. 기본값은 2000밀리초입니다.
    jdbc-lock-expiration
    jdbc-lock-renew-period 시간이 경과해도 현재 JDBC 잠금이 활성 상태로 간주되는 시간(밀리초)입니다. 이 속성을 jdbc-lock-renew-period 보다 큰 값으로 설정하면 잠금을 보유한 브로커가 갱신할 때 예기치 않은 지연이 발생하면 즉시 손실되지 않습니다. 만료 시간이 경과된 후 JDBC 잠금이 현재 보유 중인 브로커에 의해 갱신되지 않은 경우 다른 브로커는 JDBC 잠금을 설정할 수 있습니다. 기본값은 20000밀리초입니다.
    jdbc-journal-sync-period
    브로커 저널이 JDBC와 동기화하는 기간(밀리초)입니다. 기본값은 5밀리초입니다.
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.