Sun Java System Message Queue 3.7 UR1 관리 설명서

영구 데이터 저장소 구성

A broker’s 브로커의 영구 데이터 저장소는 물리적 대상, 영구 가입, 메시지, 트랜잭션 및 확인에 대한 정보가 저장되어 있습니다. Message Queue 브로커는 기본적으로 파일 기반 영구 저장소를 사용하도록 구성되어 있지만, JDBC 호환 드라이버를 통해 액세스할 수 있는 데이터 저장소에 플러그 인 되도록 다시 구성할 수도 있습니다.브로커 구성 등록 정보 imq.persist.store(표 14–4 참조)는 사용할 두 가지 형태의 지속성 중 하나를 지정합니다.

이 절에서는 영구 저장소를 사용하도록 브로커를 구성하는 방법에 대해 설명합니다. 이 장은 다음 항목으로 구성되어 있습니다.

파일 기반 저장소 구성

브로커 인스턴스를 만들면 파일 기반 데이터 저장소가 자동으로 생성됩니다. 이 저장소는 브로커의 인스턴스 디렉토리에 있습니다. 정확한 위치는 부록 A, 플랫폼별 Message QueueTM 데이터 위치를 참조하십시오.

기본적으로 Message Queue는 디스크에 대한 비동기 쓰기 작업을 수행합니다. 운영 체제는 성능 향상을 위해 이러한 작업을 버퍼링할 수 있습니다. 하지만 쓰기 작업 중에 운영 체제에 예기치 않은 오류가 발생할 경우 메시지가 손실될 수 있습니다. 성능이 조금 저하되더라도 안정성을 향상시키려면 데이터를 비동기식으로 쓰도록 브로커 등록 정보 imq.persist.file.sync를 설정할 수 있습니다. 이 등록 정보에 대한 자세한 내용은 파일 기반 지속성표 14–5를 참조하십시오.

브로커 인스턴스를 시작할 때 imqbrokerd 명령의 -reset 옵션을 사용하여 파일 시스템을 지울 수 있습니다. 이 옵션 및 하위 옵션에 대한 자세한 내용은 브로커 유틸리티를 참조하십시오.

JDBC 기반 저장소 구성

JDBC 기반 지속성을 사용하도록 브로커를 구성하려면 브로커 인스턴스 구성 파일에서 JDBC 관련 등록 정보를 설정하고 적절한 데이터베이스 스키마를 만듭니다. Message Queue 데이터베이스 관리자 유틸리티(imqdbmgr)는 JDBC 드라이버와 브로커 구성 등록 정보를 사용하여 데이터베이스를 만들고 관리합니다.또한, 데이터베이스 관리자를 사용하여 데이터베이스에서 손상된 테이블을 삭제하거나 다른 데이터베이스를 데이터 저장소로 사용할 수도 있습니다. 자세한 내용은 데이터베이스 관리자 유틸리티를 참조하십시오.


주 –

Oracle 및 PointBase 데이터베이스 제품의 구성 예를 사용할 수 있습니다. 이 파일의 위치는 플랫폼마다 다르며부록 A, 플랫폼별 Message QueueTM 데이터 위치의 관련 테이블에서 “응용 프로그램 및 구성 예”에 나와 있습니다. 또한 PointBase 내장 버전, PointBase 서버 버전 및 Oracle의 예는 인스턴스 구성 파일 config.properties에서 주석 처리된 값으로 제공됩니다.


ProcedureJDBC 기반 데이터 저장소를 구성하는 방법

  1. 브로커의 구성 파일에서 JDBC 기반 등록 정보를 설정합니다.

    관련 등록 정보는 JDBC 기반 지속성표 14–6에서 설명합니다. 특히, 브로커의 imq.persist.store 등록 정보를 jdbc로 설정해야 합니다( 지속성 등록 정보 참조).

  2. 다음 위치에 JDBC 드라이버 .jar 파일의 사본 또는 심볼릭 링크를 넣습니다.

    • Solaris:


      /usr/share/lib/imq/ext/
    • Linux:


      /opt/sun/mq/share/lib/
    • Windows:


      IMQ_VARHOME\\lib\\ext

    예를 들어, Solaris 시스템에서 PointBase를 사용하는 경우 다음 명령을 사용하여 드라이버의 .jar 파일을 해당 위치로 복사합니다.


    % cp j2eeSDKInstallDirectory/pointbase/lib/pointbase.jar /usr/share/lib/imq/ext

    대신, 다음 명령은 심볼링 링크를 만듭니다.


    % ln -s j2eeSDKID/lib/pointbase/pointbase.jar /usr/share/lib/imq/ext
  3. Message Queue 지속성에 필요한 데이터베이스 스키마를 만듭니다.

    imqdbmgr create all 명령(내장 데이터베이스용) 또는 imqdbmgr create tbl 명령(외부 데이터베이스용)을 사용합니다( 데이터베이스 관리자 유틸리티 참조).

    1. imqdbmgr이 위치한 디렉토리로 변경합니다.

      • Solaris:


        cd /usr/bin
      • Linux:


        cd /opt/sun/mq/bin
      • Windows:


        cd IMQ_HOME\\bin
    2. imqdbmgr 명령을 입력합니다.

      imqdbmgr create all


      주 –

      내장 데이터베이스를 사용하는 경우 다음 디렉토리에 해당 데이터베이스를 만드는 것이 좋습니다.

      /instances/ instanceName/dbstore/ databaseName

      내장 데이터베이스가 사용자 이름과 비밀번호로 보호되지 않는 경우에는 파일 시스템 권한으로 보호합니다. 브로커에서 데이터베이스를 읽고 쓸 수 있게 하려면 브로커를 실행하는 사용자가 imqdbmgr 명령을 사용해서 내장 데이터베이스를 만든 사용자와 같아야 합니다.


영구 데이터 보안

영구 저장소는 정보 가운데 일시적으로 저장되는 메시지 파일을 포함할 수 있습니다. 이러한 메시지에는 소유 정보가 포함될 수 있기 때문에 인증되지 않은 액세스로부터 데이터 저장소를 보호해야 합니다. 이 절에서는 파일 기반 또는 JDBC 기반 데이터 저장소의 데이터를 보호하는 방법에 대해 설명합니다.

파일 기반 저장소 보안

파일 기반 지속성을 사용하는 브로커는 영구 데이터를 플랫폼마다 다른 위치에 있는 플랫 파일 데이터 저장소에 씁니다(부록 A, 플랫폼별 Message QueueTM 데이터 위치 참조).

/instances/ instanceName/fs350/

여기서 instanceName은 브로커 인스턴스를 식별하는 이름입니다.

instanceName/fs350/ 디렉토리는 브로커 인스턴스가 처음으로 시작될 때 생성됩니다. 이 디렉토리 보안 절차는 브로커가 실행 중인 운영 체제 플랫폼에 따라 다릅니다.

JDBC 기반 저장소 보안

JDBC 기반 지속성을 사용하는 브로커는 영구 데이터를 JDBC 호환 데이터베이스에 씁니다. 데이터베이스 서버에서 관리하는 데이터베이스(예: Oracle)의 경우 Message Queue 데이터베이스 테이블(이름이 IMQ로 시작하는 테이블)에 액세스하는 데 사용할 사용자 이름과 비밀번호를 만드는 것이 좋습니다. 데이터베이스에서 개별 테이블을 보호할 수 없는 경우 Message Queue 브로커 전용 데이터베이스를 만듭니다. 사용자 이름/비밀번호 액세스 작성 방법에 대한 자세한 내용은 데이터베이스 공급업체에서 제공하는 설명서를 참조하십시오.

브로커가 데이터베이스 연결을 여는 데 필요한 사용자 이름과 암호는 브로커 구성 등록 정보에서 제공될 수 있습니다. 그러나 imqbrokerd 명령의 -dbuser-dbpassword 옵션을 사용하여 명령줄 옵션으로 제공하는 것이 보다 안전합니다( 브로커 유틸리티 참조).

브로커가 데이터베이스의 JDBC 드라이버를 통해 직접 액세스하는 내장 데이터베이스의 경우 파일 기반 저장소 보안에서 설명한 대로, 일반적으로 영구 데이터가 저장되는 디렉토리에 대한 파일 권한을 설정하여 보안을 제공합니다. 하지만 브로커와 데이터베이스 관리자 유틸리티를 모두 사용하여 데이터베이스를 읽기 및 쓰기 가능하게 하려면 해당 브로커와 유틸리티를 모두 동일한 사용자가 실행해야 합니다.