Sun Java System Application Server Enterprise Edition 8.1 2005Q2 고가용성 관리 설명서

노드 에이전트 및 DAS 동기화

구성 데이터가 Domain Administration Server의 저장소(중앙 저장소)에 저장되고 노드 에이전트의 로컬 시스템에도 캐시되므로 두 위치를 동기화해야 합니다. 캐시 동기화는 항상 관리 도구를 통한 명시적인 사용자 작업에서 수행됩니다.

이 절은 다음 내용으로 구성되어 있습니다.

노드 에이전트 동기화

노드 에이전트를 처음 시작하면 중앙 저장소의 최신 정보에 대한 요청을 DAS에 전송합니다. DAS에 연결하여 구성 정보를 가져오면 노드 에이전트는 그 DAS에 바인딩됩니다.


주 –

기본적으로 asadmin start-node-agent 명령은 DAS와 동기화되지 않고 원격 서버 인스턴스를 자동으로 시작합니다. DAS에서 관리되는 중앙 저장소와 동기화된 원격 서버 인스턴스를 시작하려면 asadmin start-node-agent 명령의 --startinstances=false 옵션을 지정합니다. 그런 다음 asadmin start-instance 명령을 사용하여 원격 서버 인스턴스를 시작합니다.


DAS에 자리 표시자 노드 에이전트를 만든 경우 노드 에이전트를 처음 시작하면 DAS의 중앙 저장소에서 구성을 가져옵니다. 초기 시작 중에 DAS가 실행되지 않아서 노드 에이전트가 DAS에 연결할 수 없는 경우 노드 에이전트가 중지되고 바인딩되지 않습니다.

도메인에서 노드 에이전트 구성을 변경하면 노드 에이전트를 실행 중일 때 로컬 시스템의 노드 에이전트와 자동으로 통신합니다.

DAS에서 노드 에이전트 구성을 삭제한 경우 노드 에이전트를 동기화하면 노드 에이전트가 스스로 중지되며 삭제 대기로 표시됩니다. 이 경우 로컬 asadmin delete-node-agent 명령을 사용하여 노드 에이전트를 수동으로 삭제합니다.

서버 인스턴스 동기화

관리 콘솔이나 asadmin 도구를 사용하여 서버 인스턴스를 명시적으로 시작하면 서버 인스턴스가 중앙 저장소와 동기화됩니다. 이 동기화가 실패하면 서버 인스턴스가 시작되지 않습니다.

관리 콘솔이나 asadmin 도구를 통한 명시적인 요청 없이 노드 에이전트가 서버 인스턴스를 시작하면 서버 인스턴스의 저장소 캐시가 동기화되지 않습니다. 서버 인스턴스는 해당 캐시에 저장된 구성으로 실행됩니다. 원격 서버 인스턴스의 캐시에서 파일을 추가하거나 제거해서는 안 됩니다.

원격 서버 인스턴스의 구성은 캐시(nodeagents/na1/server1 아래의 모든 파일)로 처리되며 Application Server가 소유합니다. 사용자가 원격 서버 인스턴스의 모든 파일을 제거하고 노드 에이전트를 다시 시작하는 극단적인 경우에는 원격 서버 인스턴스(예: server1)가 다시 만들어지고 필요한 모든 파일이 동기화됩니다.

다음 파일과 디렉토리는 Application Server에 의해 동기화된 상태로 유지됩니다.

표 7–1 원격 서버 인스턴스 사이에서 동기화되는 파일과 디렉토리

파일 또는 디렉토리 

설명 

applications

배포된 모든 응용 프로그램입니다. 이 디렉토리 및 하위 디렉토리에서 동기화되는 부분은 서버 인스턴스에서 참조되는 응용 프로그램에 따라 다릅니다. 노드 에이전트는 응용 프로그램을 참조하지 않기 때문에 어떠한 응용 프로그램도 동기화하지 않습니다. 

config

전체 도메인에 대한 구성 파일을 포함합니다. admch, admsn, secure.seed, timestamp__timer_service_shutdown__.dat 등과 같은 런타임 임시 파일을 제외한 이 디렉토리의 모든 파일이 동기화됩니다.

config/config_name

config_name이라는 구성을 사용하여 모든 인스턴스에서 공유할 파일을 저장하는 디렉토리입니다. 이러한 디렉토리는 domain.xml에 정의된 모든 구성에 대해 하나만 존재합니다. 이 디렉토리의 모든 파일은 config_name을 사용하는 서버 인스턴스와 동기화됩니다.

config/config_name/lib/ext

Java 확장 클래스(예: zip 또는 jar 아카이브)를 드롭할 수 있는 폴더입니다. config_name이라는 구성을 사용하는 서버 인스턴스에 배포된 응용 프로그램에 사용됩니다. 이러한 jar 파일은 Java 확장 메커니즘을 통해 로드됩니다.

docroot 

HTTP 문서 루트입니다. 기본 구성에서 도메인의 모든 서버 인스턴스는 동일한 docroot를 사용합니다. 가상 서버의 docroot 등록 정보를 구성하여 서버 인스턴스에서 다른 docroot를 사용하게 해야 합니다. 

generated 

EJB 스텁, 컴파일된 JSP 클래스 및 보안 정책 파일과 같이 Java EE 응용 프로그램 및 모듈용으로 생성된 파일입니다. 이 디렉토리는 응용 프로그램 디렉토리와 동기화됩니다. 따라서 서버 인스턴스에서 참조하는 응용 프로그램에 해당하는 디렉토리만 동기화됩니다. 

lib, lib/classes 

전체 도메인에 배포된 응용 프로그램에 사용되는 일반 Java 클래스 파일이나 jar 및 zip 아카이브를 드롭할 수 있는 폴더입니다. 이러한 클래스는 Application Server의 클래스 로더를 통해 로드됩니다. 클래스 로더에서의 로드 순서는 lib/classes, lib/*.jar, lib/*.zip입니다.

lib/ext 

전체 도메인에 배포된 응용 프로그램에 사용되는 일반 Java 확장 클래스(jar 및 zip 아카이브)를 드롭할 수 있는 폴더입니다. 이러한 jar 파일은 Java 확장 메커니즘을 통해 로드됩니다. 

라이브러리 파일 동기화

응용 프로그램에 대한 --libraries 배포 시간 속성을 사용하여 응용 프로그램의 런타임 종속성을 지정할 수 있습니다.

전체 도메인에서 라이브러리를 사용할 수 있게 하려면 JAR 파일을 domain-dir/lib 또는 domain-dir/lib/classes에 둘 수 있습니다. 자세한 내용은 Sun Java System Application Server Enterprise Edition 8.1 2005Q2 Developer’s GuideUsing the Common Classloader를 참조하십시오. 이 작업은 도메인의 모든 응용 프로그램에서 공유하는 JDBC 드라이버 및 기타 유틸리티 라이브러리에 일반적으로 적용됩니다.

클러스터 전체 또는 독립 실행형 서버 전체에서 사용하는 경우에는 jar을 domain-dir/domain1/config/xyz-config/lib 디렉토리에 복사합니다. 그런 다음 jar를 xyz-configclasspath-suffix 또는 classpath-prefix 요소에 추가합니다. 이렇게 하면 xyz-config를 사용하는 모든 서버 인스턴스에 대해 jar가 동기화됩니다.

요약하면 다음과 같습니다.

고유한 설정 및 구성 관리

구성 파일(domains/domain1/config에 있음)은 도메인에서 동기화됩니다. 독립 실행행 서버 인스턴스(server1)에 사용되는 server1-config에 대한 server.policy 파일을 사용자 정의하려면 수정된 server.policy 파일을 domains/domain1/config/server1-config 디렉토리에 둡니다.

수정된 이 server.policy 파일은 독립 실행형 서버 인스턴스인 server1에 대해서만 동기화됩니다. jvm-option을 업데이트해야 합니다. 예를 들면 다음과 같습니다. <java-config> ... <jvm-options>-Djava.security.policy=${com.sun.aas.instanceRoot}/config/server1-config/server.policy</jvm-options></java-config>

대용량 응용 프로그램 동기화

환경에 동기화할 대용량 응용 프로그램이 포함되거나 사용 가능한 메모리가 제한된 경우 JVM 옵션을 조정하여 메모리 사용을 제한할 수 있습니다. 이렇게 조정하면 메모리 부족 오류 발생 가능성이 줄어듭니다. 인스턴스 동기화 JVM은 기본 설정을 사용하지만 JVM 옵션을 구성하여 변경할 수 있습니다.

INSTANCE-SYNC-JVM-OPTIONS 등록 정보를 사용하여 JVM 옵션을 설정합니다. 등록 정보를 설정하는 명령은 다음과 같습니다.

asadmin set 
domain.node-agent.node_agent_name.property.INSTANCE-SYNC-JVM-OPTIONS="JVM_options"

예를 들면 다음과 같습니다.

asadmin set 
domain.node-agent.node0.property.INSTANCE-SYNC-JVM-OPTIONS="-Xmx32m -Xss2m"

이 예에서 노드 에이전트는 node0이고 JVM 옵션은 -Xmx32m -Xss2m입니다.

자세한 내용은 http://java.sun.com/docs/hotspot/VMOptions.html을 참조하십시오.


주 –

구성에서 등록 정보를 추가하거나 변경한 경우 노드 에이전트가 자동으로 동기화되지 않으므로 INSTANCE-SYNC-JVM-OPTIONS 등록 정보를 변경한 후 노드 에이전트를 다시 시작합니다.


doNotRemoveList 플래그 사용

응용 프로그램이 Application Server에서 동기화되는 디렉토리(applications, generated, docroot, config, lib)에서 파일을 저장하고 읽어야 하는 경우 doNotRemoveList 플래그를 사용합니다. 이 속성은 쉼표로 구분된 파일 또는 디렉토리 목록을 사용합니다. 응용 프로그램 종속 파일은 DAS가 관리하는 중앙 저장소에 없는 경우에도 서버 시작 도중에 제거되지 않습니다. 중앙 저장소에 동일한 파일이 있는 경우에는 응용 프로그램 종속 파일이 동기화 중에 덮어써집니다.

INSTANCE-SYNC-JVM-OPTIONS 등록 정보를 사용하여 doNotRemoveList 속성을 전달합니다.

예를 들면 다음과 같습니다.

<node-agent name="na1" ...>

...

<property name="INSTANCE-SYNC-JVM-OPTIONS" value="-Dcom.sun.appserv.doNotRemoveList=applications/j2ee-modules/<webapp_context>/logs,generated/mylogdir"/>

</node–agent>