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

파일 기반 지속성

기본적으로 Message Queue에서는 파일 기반 영구 데이터 저장소를 사용하는데, 이 저장소에서는 개별 파일이 메시지, 대상, 영구 가입 및 트랜잭션과 같은 영구 데이터를 저장합니다. 파일 기반 지속성과 관련된 브로커 구성 등록 정보는 파일 기반 지속성에 나와 있습니다.

파일 기반 저장소는 데이터 저장소가 속한 브로커 인스턴스의 이름(instanceName)으로 식별되는 디렉토리에 있습니다.

/instances/instanceName
/fs350/

stances 디렉토리의 위치는 부록 A, 플랫폼별 Message QueueTM 데이터 위치를 참조하십시오. 브로커의 각 대상마다 해당 대상으로 전달된 메시지가 들어 있는 고유의 하위 디렉토리가 있습니다.


주 –

영구 데이터 저장소에는 중요 정보나 소유 정보를 포함하는 메시지가 있을 수 있기 때문에 /instances/ instanceName/fs350/ 디렉토리를 인증되지 않은 액세스로부터 보호해야 합니다. 영구 데이터 보안를 참조하십시오.


메시지 이외의 모든 영구 데이터는 개별 파일(대상용 파일, 영구 가입용 파일 및 트랜잭션 상태 정보용 파일)에 저장됩니다. 대부분의 메시지는 가변 크기 레코드로 구성되는 단일 파일에 저장됩니다. 메시지를 추가 및 제거할 때 단편화를 줄이려면 이 파일을 압축할 수 있습니다( 물리적 대상 압축 참조). 또한, 특정 임계값 크기를 초과하는 메시지는 가변 크기 레코드 파일보다는 고유의 개별 파일에 저장됩니다. 브로커 등록 정보 imq.persist.file.message.max_record_size를 사용하여 이 임계값 크기를 구성할 수 있습니다.

브로커는 더 이상 필요하지 않은 파일을 삭제하는 대신 나중에 다른 메시지에 다시 사용할 수 있도록 대상 디렉토리의 사용 가능 파일 풀로 반환하는 방식으로 개별 메시지 파일의 파일 풀을 관리합니다. 브로커 등록 정보 imq.persist.file.destination.message.filepool.limit는 풀의 최대 파일 수를 지정합니다. 대상의 개별 메시지 파일 수가 이 제한을 초과하면 파일이 더 이상 필요하지 않을 때 풀로 반환되지 않고 삭제됩니다.

파일을 파일 풀로 반환하는 경우 이전 내용을 삭제하지 않고 단순히 파일에 재사용 태그를 표시하여 저장소 공간을 절약할 수 있습니다. imq.persist.file.message.filepool.cleanratio 브로커 등록 정보를 사용하면 단순히 재사용 태그를 표시하지 않고 “깨끗한(빈)” 상태로 유지해야 하는 각 대상의 파일 풀에서 파일 비율을 지정할 수 있습니다. 이 값을 높게 설정할수록 파일 풀에 필요한 공간은 줄어들지만, 파일을 풀로 반환 시 파일 내용을 비우는 데 필요한 오버헤드는 더 커집니다. 브로커의 imq.persist.file.message.cleanup 등록 정보가 true이면 풀의 모든 파일이 브로커 종료 시 비워지므로 clean 상태로 유지됩니다. 이렇게 하면 저장소 공간은 절약되지만 종료 프로세스 속도는 느려집니다.

데이터를 영구 저장소에 기록할 때 운영 체제는 데이터를 동기식으로 쓰거나 “느리게(비동기식으로)” 씁니다. 저속 저장소는 데이터가 영구 저장소에 기록되지 않았는데도 브로커에서 기록되었다고 믿는 경우 시스템이 충돌하면 데이터가 손실될 수 있습니다. 성능을 조금 낮추더라도 절대 안정성을 유지하려는 경우에는 브로커 등록 정보 imq.persist.file.sync.enabledtrue로 설정하여 모든 데이터를 동기식으로 기록해야 합니다. 이 경우, 충돌 후 시스템이 다시 백업되면 데이터를 사용할 수 있으므로 브로커는 작업을 안정적으로 다시 시작할 수 있습니다. 그러나, 데이터가 손실되지 않았어도 클러스터화된 브로커에 현재 공유 데이터가 없으므로 클러스터의 다른 브로커는 사용할 수 없습니다.