14.3. 컨테이너 수준 잠금
14.3.1. 개요
컨테이너 수준 잠금을 사용하면 더 빠른 페일오버 성능을 제공하기 위해 번들을 슬레이브 커널 인스턴스에 사전 로드할 수 있습니다. 컨테이너 수준 잠금은 간단한 파일 및 JDBC 잠금 메커니즘 모두에서 지원됩니다.
14.3.2. 컨테이너 수준 잠금 구성
컨테이너 수준 잠금을 구현하려면 마스터/슬레이브 설정에 있는 각 시스템의 etc/system.properties
파일에 다음을 추가합니다.
예 14.7. 컨테이너 수준 잠금 구성
karaf.lock=true karaf.lock.level=50 karaf.lock.delay=10000
karaf.lock.level
속성은 Red Hat Fuse 인스턴스에 OSGi 컨테이너를 가져오는 부팅 프로세스의 범위를 알려줍니다. 그러면 동일한 시작 수준 또는 낮음이 할당된 번들이 해당 Fuse 인스턴스에서도 시작됩니다.
번들 시작 수준은 BundleName.jar=level 형식으로
형식으로 지정됩니다. 코어 시스템 번들에는 50 미만의 수준이 있으며, 여기서 사용자 번들의 수준이 50보다 큽니다.
etc/startup.
properties
시작 수준 | 동작 |
---|---|
1 | 'cold' 대기 인스턴스입니다. 코어 번들은 컨테이너에 로드되지 않습니다. 슬레이브는 서버를 시작하기 위해 획득된 잠금이 시작될 때까지 기다립니다. |
<50 | 'hot' 대기 인스턴스입니다. 코어 번들은 컨테이너에 로드됩니다. 슬레이브는 사용자 수준 번들을 시작하기 위해 획득된 잠금이 완료될 때까지 기다립니다. 이 수준에서 각 슬레이브 인스턴스에 대해 콘솔에 액세스할 수 있습니다. |
>50 | 사용자 번들이 시작되므로 이 설정은 권장되지 않습니다. |
14.3.3. 포트 충돌 방지
동일한 호스트에 'hot' 예비를 사용하는 경우 바인딩 충돌을 방지하기 위해 Cryostat 원격 포트를 고유한 값으로 설정해야 합니다. 다음을 포함하도록 fuse
시작 스크립트(또는 하위 인스턴스에서 karaf
스크립트)를 편집할 수 있습니다.
DEFAULT_JAVA_OPTS="-server $DEFAULT_JAVA_OPTS -Dcom.sun.management.jmxremote.port=1100 -Dcom.sun.management.jmxremote.authenticate=false"