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

지속성 등록 정보

Message QueueTM는 영구 데이터 저장소의 파일 기반 및 JDBC 기반 모델을 모두 지원합니다. 브로커 등록 정보 imq.persist.store(표 14–4)는 사용할 모델을 지정합니다. 다음 절에서는 두 모델의 브로커 구성 등록 정보에 대해 설명합니다.

표 14–4 전역 브로커 지속성 등록 정보

등록 정보 

유형 

기본값 

설명 

imq.persist.store

문자열 

file

영구 데이터 저장소 모델:  

    file: 파일 기반 지속성


    jdbc: JDBC 기반 지속성


파일 기반 지속성

표 14–5는 파일 기반 지속성 관련 브로커 등록 정보를 나열합니다.

표 14–5 파일 기반 지속성에 대한 브로커 등록 정보

등록 정보 

유형 

기본값 

설명 

imq.persist.file.message.max_record_size

문자열 

1m

메시지 저장소 파일에 추가할 최대 크기 메시지 

이 크기를 초과하는 모든 메시지는 고유의 개별 파일에 저장됩니다.  

값은 다음 접미사를 사용하여 바이트, 킬로바이트 또는 메가바이트 단위로 표현할 수 있습니다.  

    b: 바이트


    k: 킬로바이트(1024바이트)


    m: 메가바이트(1024 × 1024 = 1,048,576바이트)


접미사가 붙지 않는 값은 바이트로 표현됩니다.  

예:

    1600: 1600바이트


    1600b: 1600바이트


    16k: 16킬로바이트(= 16,384바이트)


    16m: 16메가바이트(= 16,777,216바이트)


imq.persist.file.destination.message.filepool.limit

정수 

100

대상 파일 풀에서 재사용할 수 있는 최대 사용 가능 파일 수 

이 제한을 초과하는 사용 가능 파일은 삭제됩니다. 이 제한을 초과할 경우 브로커는 필요에 따라 추가 파일을 작성하고 삭제합니다.  

이 제한이 클수록 브로커에서 영구 데이터를 더 빠르게 처리할 수 있습니다.  

imq.persist.file.message.filepool.cleanratio

정수 

0

빈 상태로 유지 관리할 사용 가능 파일 풀의 파일 비율 

이 값이 클수록 작업 중 파일을 지우는 데 필요한 오버헤드가 늘어나지만, 파일 풀에 필요한 디스크 공간은 줄어듭니다.  

imq.persist.file.message.cleanup

부울 

false

종료 시 사용 가능 파일 풀의 파일을 지우겠습니까?  

이 등록 정보를 true로 설정하면 파일 저장소에 필요한 디스크 공간을 절약할 수 있지만 브로커 종료가 느려집니다.

imq.persist.file.sync.enabled

부울 

false

메모리 상태를 물리적 저장소 장치와 동기화하시겠습니까? 

이 등록 정보를 true로 설정하면 시스템 충돌로 인한 데이터 손실이 없어지지만 성능이 저하됩니다.


주 –

Sun Cluster 및 Sun Cluster Data Service for Message Queue를 실행하는 경우 모든 클러스터 노드의 브로커에 대해 이 등록 정보를 true로 설정합니다.


JDBC 기반 지속성

표 14–6은 JDBC 기반 지속성 관련 브로커 등록 정보를 나열합니다. 다음은 DataMirror Mobile Solutions, Inc.의 데이터베이스 제품 중 PointBase® 제품군에 대한 예입니다.

표 14–6 JDBC 기반 지속성에 대한 브로커 등록 정보

등록 정보 

예 

설명 

imq.persist.jdbc.brokerid

PointBase 내장 버전에는 필요하지 않음 

(선택 사항) 브로커 인스턴스 식별자

n - 12자 이하의 영숫자 문자열이어야 합니다. 여기서 n은 데이터베이스에서 허용되는 최대 테이블 이름 길이입니다.

두 개 이상의 브로커 인스턴스가 영구 데이터 저장소로 같은 데이터베이스를 사용 중인 경우에는 데이터베이스 테이블 이름에 이 식별자가 추가되어 해당 이름을 고유하게 나타냅니다. 보통 한 브로커 인스턴스에 대해서만 데이터를 저장하는 내장 데이터베이스에는 이 식별자가 필요하지 않습니다.  

imq.persist.jdbc.driver

com.pointbase.jdbc.jdbcUniversalDriver

데이터베이스에 연결하기 위한 JDBC 드라이버의 Java 클래스 이름

imq.persist.jdbc.opendburl

jdbc:pointbase:embedded:dbName ;

    database.home=
    
       .../instances/instanceName/dbstore
    

기존 데이터베이스로의 연결을 여는 데 필요한 URL

imq.persist.jdbc.createdburl

jdbc:pointbase:embedded:dbName ;

    new,database.home=
    
       .../instances/instanceName/dbstore
    

(선택 사항) 새 데이터베이스를 작성하는 데 필요한 URL

Message Queue 데이터베이스 관리자 유틸리티(imqdbmgr)를 사용하여 데이터베이스를 만드는 경우에만 필요합니다.

imq.persist.jdbc.closedburl

PointBase에는 필요하지 않음 

(선택 사항) 데이터베이스 연결을 닫는 데 필요한 URL

imq.persist.jdbc.user

 

(선택 사항) 필요할 경우 데이터베이스 연결을 여는 데 필요한 사용자 이름

보안상의 이유로 imqbrokerd -dbuserimqdbmgr - u 명령줄 옵션을 사용해서 값을 지정할 수도 있습니다.

imq.persist.jdbc.needpassword

 

(선택 사항) 브로커에서 데이터베이스에 액세스하려면 비밀번호가 필요합니까?

true이면 -passfile 옵션을 사용하여 비밀번호가 들어 있는 비밀번호 파일을 지정하지 않는 경우 imqbrokerdimqdbmgr 명령이 비밀번호를 묻는 프롬프트 메시지를 표시합니다.

imq.persist.jdbc.password [비밀번호 파일에만 사용해야 합니다.]

 

(선택 사항) 데이터베이스 연결을 여는 데 필요한 비밀번호

imq.persist.jdbc.table.IMQSV35

CREATE TABLE ${name}

    (STOREVERSION INTEGER NOT NULL,
    
     BROKERID VARCHAR(100))
    

버전 테이블을 작성하는 SQL 명령

imq.persist.jdbc.table.IMQCCREC35

CREATE TABLE ${name}

    (RECORDTIME BIGINT NOT NULL,
    
     RECORD BLOB(10k))
    

구성 변경 레코드 테이블을 작성하는 SQL 명령

imq.persist.jdbc.table.IMQDEST35

CREATE TABLE ${name}

    (DID VARCHAR(100) NOT NULL,
    
     DEST BLOB(10k),
    
     primaryKey(DID))
    

대상 테이블을 작성하는 SQL 명령

imq.persist.jdbc.table.IMQINT35

CREATE TABLE ${name}

    (CUID BIGINT NOT NULL,
    
     INTEREST BLOB(10k),
    
     primaryKey(CUID))
    

인터레스트 테이블을 작성하는 SQL 명령

imq.persist.jdbc.table.IMQMSG35

CREATE TABLE ${name}

    (MID VARCHAR(100) NOT NULL,
    
     DID VARCHAR(100),
    
     MSGSIZE BIGINT,
    
     MSG BLOB(1m),
    
     primaryKey(MID))
    

메시지 테이블을 작성하는 SQL 명령

MSG 열의 기본 최대 길이는 1메가바이트(1m)입니다. 이보다 더 긴 메시지가 있을 것으로 예상되면 길이를 해당 크기에 맞게 설정합니다. 테이블이 이미 작성된 경우에는 해당 테이블을 다시 작성하여 최대 메시지 길이를 변경해야 합니다.

imq.persist.jdbc.table.IMQPROPS35

CREATE TABLE ${name}

    (PROPNAME VARCHAR(100) NOT NULL,
    
     PROPVALUE BLOB(10k),
    
     primaryKey(PROPNAME))
    

등록 정보 테이블을 작성하는 SQL 명령

imq.persist.jdbc.table.IMQILIST35

CREATE TABLE ${name}

    (MID VARCHAR(100) NOT NULL,
    
     CUID BIGINT,
    
     DID VARCHAR(100),
    
     STATE INTEGER,
    
     primaryKey(MID, CUID))
    

인터레스트 상태 테이블을 작성하는 SQL 명령

imq.persist.jdbc.table.IMQTXN35

CREATE TABLE ${name}

    (TUID BIGINT NOT NULL,
    
     STATE INTEGER,
    
     TSTATEOBJ BLOB(10K),
    
     primaryKey(TUID))
    

트랜잭션 테이블을 작성하는 SQL 명령

imq.persist.jdbc.table.IMQTACK35

CREATE TABLE ${name}

    (TUID BIGINT NOT NULL,
    
     TXNACK BLOB(10k))
    

트랜잭션 확인 테이블을 작성하는 SQL 명령