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 형식으로 etc/startup. properties 형식으로 지정됩니다. 코어 시스템 번들에는 50 미만의 수준이 있으며, 여기서 사용자 번들의 수준이 50보다 큽니다.

표 14.1. 번들 시작 수준

시작 수준동작

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"