- 프로그래밍
- | 03 23, 2010 15:17
EhCache 설정
캐시 설정
* 다음 속성들은 반드시 설정해야 하는 것들입니다.
name:캐시의 이름을 설정. 이는 캐시를 식별하는 데에 사용되며 반드시 유일해야 합니다.
maxElementsInMemory : 메모리에 생성되는 객체들의 최대 개수를 설정
maxElementsOnDisk : 디스크 스토어(DiskStore)에 관리될 최대 객체 개수를 설정
기본 값은 0으로서, 무제한을 의미합니다.
eternal : 엘리먼트들이 영속적임을 설정합니다. 영속적으로 설정되면, 타임아웃은 무시되며, 해당 엘리먼트는 소멸되지 않습니다.
overflowToDisk : 인-메모리(In-Memory) 캐시가 maxInMemory 한계값에 도달하게 될 때 엘리먼트들이 유출될 수 있음을 설정
* 다음 속성들은 반드시 설정하지 않아도 되는 선택 사항들입니다.
timeToIdleSeconds :
소멸(Expires)되기 전에 특정 엘리먼트에 대해 IDLE하게 유지해야 하는 시간을 설정
즉, 특정 엘리먼트가 소멸되기 전에 접근들 간의 차이가 되는 최대 시간을 설정
이 값은 엘리먼트가 eternal하지 않을 때에만 적용 가능합니다.
이 속성은 선택적 옵션이며, 이 값에 0을 설정하게 되면, 특정 엘리먼트는 무한하게
IDLE 상태로 유지됨을 의미합니다. 기본 값은 0입니다.
timeToLiveSeconds :
특정 엘리먼트가 속멸되기 전에 객체로서 존재하는 시간을 설정
즉, 특정 엘리먼트가 생성되어 소멸될 때까지의 최대 시간을 설정
이 속성은 엘리먼트가 eternal하지 않을 때에만 적용됩니다.
이 속성은 선택적 옵션이며, 이 값에 0을 설정하게 되면 특정 엘리먼트는 무한하게
객체로서 존재하게 됩니다. 기본 값은 0입니다.
diskPersistent:
디스크 스토어(Disk Store)가 Java Virtual Machine의 재시작 될 때
객체들을 저장/로드할지 여부
기본 값은 false입니다.
diskExpiryThreadIntervalSeconds:
디스크 소멸 쓰레드가 동작하는 주기 시간을 설정
기본 값은 120초입니다.
memoryStoreEvictionPolicy:
maxElementsInMemory 한계값에 도달하게 될 때의 정책을 설정합니다.
기본 정책은 Least Recently Used (a.k.a. "LRU") 입니다.
다른 정책들도 사용 가능하며, First In First Out (a.k.a. "FIFO") 와
Less Frequently Used ("LFU") 정책을 사용할 수 있습니다.
캐시 엘리먼트들은 또한 특정 팩토리 클래스로부터의 동일한 포맷을 취하여
동일한 프로퍼티들을 갖는 하위 엘리먼트들을 포함할 수 있습니다.
정의된 하위 엘리먼트들은 다음과 같습니다.
* cacheEventListenerFactory - 캐시 이벤트들에 대한 리스너들의 등록 가능
예를 들면, put, remove, update, expire
* bootstrapCacheLoaderFactory - BootstrapCacheLoader를 지정
BootstrapCacheLoader는 초기화 시에
자기 자신을 미리 구동하기 위해 호출됩니다.
분산되는 각 캐시는 특정 캐시 이벤트 리스너를 설정하여, 그 이벤트 리스너로 하여금
메시지들을 다른 CacheManager 피어들에게 전달할 필요가 있습니다.
기본적으로 제공되는 RMI 기반 구현 코드를 사용할 때에, 이러한 기능은
RMICacheReplicatorFactory라는 타입을 갖는 cacheEventListenerFactory 엘리먼트를
각 분산된 캐시 설정에 추가할 수 있습니다. 다음 예를 참조하십시오.
<cacheEventListenerFactory class="net.sf.ehcache.distribution.RMICacheReplicatorFactory"
properties="replicateAsynchronously=true,
replicatePuts=true,
replicateUpdates=true,
replicateUpdatesViaCopy=true,
replicateRemovals=true "/>
RMICacheReplicatorFactory는 다음 프로퍼티들을 설정할 수 있습니다.
* replicatePuts=true|false - 특정 캐시에 존재하는 새로운 엘리먼트들이 다른 곳으로
복제되어야 하는지 여부. 기본 값은 true임.
* replicateUpdates=true|false - 기존에 동일한 키로 존재하는 엘리먼트를 오버라이드한
새로운 엘리먼트들이 복제되어야 하는지 여부.
기본 값은 true임.
* replicateRemovals=true - 엘리먼트의 삭제가 복제되어야 하는지 여부를 설정
기본 값은 true임.
* replicateAsynchronously=true | false
- 복제 작업이 비동기(ture)여야 하는지 동기(false)여야 하는지를 설정
기본 값은 true임.
* replicateUpdatesViaCopy=true | false
- 새로운 엘리먼트들이 다른 캐시들로 복사되어야 하는지,
아니면 삭제 메시지가 전달되어야 하는지 여부를 설정
기본 값은 true임.
* asynchronousReplicationIntervalMillis=<number of milliseconds>
- 비동기 복제 모듈은 정해진 밀리초 주기로 동작합니다.
기본 값은 1000입니다.
최소 값은 10입니다.
이 프로퍼티는 오직 replicateAsynchronously=true일 때에만 적용 가능합니다.
RMIBootstrapCacheLoader는 RMICacheReplicator가 사용되는 클러스터 내의
캐시들을 부트스트랩 합니다.
다음 예와 같이 설정될 수 있습니다.
<bootstrapCacheLoaderFactory
class="net.sf.ehcache.distribution.RMIBootstrapCacheLoaderFactory"
properties="bootstrapAsynchronously=true, maximumChunkSizeBytes=5000000"/>
RMIBootstrapCacheLoaderFactory는 다음과 같은 선택적 프로퍼티들을 사용하여
설정 가능합니다.
* bootstrapAsynchronously=true|false
- 부트스트랩이 캐시가 시작되고 나서, 백그라운드에서 수행될지 여부를 설정
이 값이 false이면, 부트스트랩핑은 캐시가 가용해지기 전에 먼저 완료됩니다.
기본 값은 true입니다.
* maximumChunkSizeBytes=<integer>
- 캐시들은 잠재적으로 매우 커져서 JVM의 메모리 제한을 초과할 수 있습니다.
이 프로퍼티는 부트스트랩 모듈(Bootstraper)이 엘리먼트들을 큰 덩어리로서
관리할 수 있게 합니다.
기본 덩어리 크기는 5000000 (5MB) 입니다.
캐시 설정
* 다음 속성들은 반드시 설정해야 하는 것들입니다.
name:캐시의 이름을 설정. 이는 캐시를 식별하는 데에 사용되며 반드시 유일해야 합니다.
maxElementsInMemory : 메모리에 생성되는 객체들의 최대 개수를 설정
maxElementsOnDisk : 디스크 스토어(DiskStore)에 관리될 최대 객체 개수를 설정
기본 값은 0으로서, 무제한을 의미합니다.
eternal : 엘리먼트들이 영속적임을 설정합니다. 영속적으로 설정되면, 타임아웃은 무시되며, 해당 엘리먼트는 소멸되지 않습니다.
overflowToDisk : 인-메모리(In-Memory) 캐시가 maxInMemory 한계값에 도달하게 될 때 엘리먼트들이 유출될 수 있음을 설정
* 다음 속성들은 반드시 설정하지 않아도 되는 선택 사항들입니다.
timeToIdleSeconds :
소멸(Expires)되기 전에 특정 엘리먼트에 대해 IDLE하게 유지해야 하는 시간을 설정
즉, 특정 엘리먼트가 소멸되기 전에 접근들 간의 차이가 되는 최대 시간을 설정
이 값은 엘리먼트가 eternal하지 않을 때에만 적용 가능합니다.
이 속성은 선택적 옵션이며, 이 값에 0을 설정하게 되면, 특정 엘리먼트는 무한하게
IDLE 상태로 유지됨을 의미합니다. 기본 값은 0입니다.
timeToLiveSeconds :
특정 엘리먼트가 속멸되기 전에 객체로서 존재하는 시간을 설정
즉, 특정 엘리먼트가 생성되어 소멸될 때까지의 최대 시간을 설정
이 속성은 엘리먼트가 eternal하지 않을 때에만 적용됩니다.
이 속성은 선택적 옵션이며, 이 값에 0을 설정하게 되면 특정 엘리먼트는 무한하게
객체로서 존재하게 됩니다. 기본 값은 0입니다.
diskPersistent:
디스크 스토어(Disk Store)가 Java Virtual Machine의 재시작 될 때
객체들을 저장/로드할지 여부
기본 값은 false입니다.
diskExpiryThreadIntervalSeconds:
디스크 소멸 쓰레드가 동작하는 주기 시간을 설정
기본 값은 120초입니다.
memoryStoreEvictionPolicy:
maxElementsInMemory 한계값에 도달하게 될 때의 정책을 설정합니다.
기본 정책은 Least Recently Used (a.k.a. "LRU") 입니다.
다른 정책들도 사용 가능하며, First In First Out (a.k.a. "FIFO") 와
Less Frequently Used ("LFU") 정책을 사용할 수 있습니다.
캐시 엘리먼트들은 또한 특정 팩토리 클래스로부터의 동일한 포맷을 취하여
동일한 프로퍼티들을 갖는 하위 엘리먼트들을 포함할 수 있습니다.
정의된 하위 엘리먼트들은 다음과 같습니다.
* cacheEventListenerFactory - 캐시 이벤트들에 대한 리스너들의 등록 가능
예를 들면, put, remove, update, expire
* bootstrapCacheLoaderFactory - BootstrapCacheLoader를 지정
BootstrapCacheLoader는 초기화 시에
자기 자신을 미리 구동하기 위해 호출됩니다.
분산되는 각 캐시는 특정 캐시 이벤트 리스너를 설정하여, 그 이벤트 리스너로 하여금
메시지들을 다른 CacheManager 피어들에게 전달할 필요가 있습니다.
기본적으로 제공되는 RMI 기반 구현 코드를 사용할 때에, 이러한 기능은
RMICacheReplicatorFactory라는 타입을 갖는 cacheEventListenerFactory 엘리먼트를
각 분산된 캐시 설정에 추가할 수 있습니다. 다음 예를 참조하십시오.
<cacheEventListenerFactory class="net.sf.ehcache.distribution.RMICacheReplicatorFactory"
properties="replicateAsynchronously=true,
replicatePuts=true,
replicateUpdates=true,
replicateUpdatesViaCopy=true,
replicateRemovals=true "/>
RMICacheReplicatorFactory는 다음 프로퍼티들을 설정할 수 있습니다.
* replicatePuts=true|false - 특정 캐시에 존재하는 새로운 엘리먼트들이 다른 곳으로
복제되어야 하는지 여부. 기본 값은 true임.
* replicateUpdates=true|false - 기존에 동일한 키로 존재하는 엘리먼트를 오버라이드한
새로운 엘리먼트들이 복제되어야 하는지 여부.
기본 값은 true임.
* replicateRemovals=true - 엘리먼트의 삭제가 복제되어야 하는지 여부를 설정
기본 값은 true임.
* replicateAsynchronously=true | false
- 복제 작업이 비동기(ture)여야 하는지 동기(false)여야 하는지를 설정
기본 값은 true임.
* replicateUpdatesViaCopy=true | false
- 새로운 엘리먼트들이 다른 캐시들로 복사되어야 하는지,
아니면 삭제 메시지가 전달되어야 하는지 여부를 설정
기본 값은 true임.
* asynchronousReplicationIntervalMillis=<number of milliseconds>
- 비동기 복제 모듈은 정해진 밀리초 주기로 동작합니다.
기본 값은 1000입니다.
최소 값은 10입니다.
이 프로퍼티는 오직 replicateAsynchronously=true일 때에만 적용 가능합니다.
RMIBootstrapCacheLoader는 RMICacheReplicator가 사용되는 클러스터 내의
캐시들을 부트스트랩 합니다.
다음 예와 같이 설정될 수 있습니다.
<bootstrapCacheLoaderFactory
class="net.sf.ehcache.distribution.RMIBootstrapCacheLoaderFactory"
properties="bootstrapAsynchronously=true, maximumChunkSizeBytes=5000000"/>
RMIBootstrapCacheLoaderFactory는 다음과 같은 선택적 프로퍼티들을 사용하여
설정 가능합니다.
* bootstrapAsynchronously=true|false
- 부트스트랩이 캐시가 시작되고 나서, 백그라운드에서 수행될지 여부를 설정
이 값이 false이면, 부트스트랩핑은 캐시가 가용해지기 전에 먼저 완료됩니다.
기본 값은 true입니다.
* maximumChunkSizeBytes=<integer>
- 캐시들은 잠재적으로 매우 커져서 JVM의 메모리 제한을 초과할 수 있습니다.
이 프로퍼티는 부트스트랩 모듈(Bootstraper)이 엘리먼트들을 큰 덩어리로서
관리할 수 있게 합니다.
기본 덩어리 크기는 5000000 (5MB) 입니다.
- Tag
- cache, ehcache
- Responses
- No Trackbacks , No Comments
Trackback URL : http://dodamdodam.org/trackback/49


