Application Server는 설치 시 서버라고 하는 한 개의 Application Server 서버 인스턴스를 만듭니다. 필요하면, 서버 인스턴스를 삭제하고 다른 이름으로 새로운 인스턴스를 만들 수 있습니다.
인스턴스마다 고유한 J2EE 구성, J2EE 자원 응용 프로그램 배포 영역 및 서버 구성 설정이 있습니다. 한 개의 Application Server 인스턴스를 변경하는 경우 다른 Application Server 인스턴스는 영향을 받지 않습니다. 한 관리 도메인 내에 많은 Application Server 인스턴스를 가질 수 있습니다.
대부분의 경우 Application Server 인스턴스는 하나만 있으면 됩니다. 하지만 환경에 따라 하나 이상의 추가 Application Server 인스턴스를 만들어야 할 수도 있습니다. 예를 들어, 개발 환경에서 다른 Application Server 인스턴스를 사용하여 다른 Application Server 구성을 테스트하거나 다른 응용 프로그램 배포를 비교 및 테스트할 수 있습니다. Application Server 인스턴스는 손쉽게 추가 또는 삭제할 수 있기 때문에 개발하는 동안 이러한 Application Server 인스턴스를 사용하면 실험에 사용할 임시 “샌드 박스” 영역을 만들 수 있습니다.
또한 각 Application Server 인스턴스에 대해 가상 서버를 만들 수도 있습니다. 단일 설치 Application Server 인스턴스 내에서 회사나 개인 도메인 이름, IP 주소 및 일부 관리 기능을 제공할 수 있습니다. 사용자의 경우 하드웨어와 기본 서버 유지 관리를 제외하면 고유 웹 서버를 가진 것과 거의 같습니다. 이러한 가상 서버는 여러 Application Server 인스턴스에 걸쳐 있지 않습니다. 가상 서버에 대한 자세한 내용은 JVM 일반 설정을 구성하는 방법을 참조하십시오.
운영상 배포할 때 많은 용도로 여러 Application Server 인스턴스 대신 가상 서버를 사용할 수 있습니다. 그러나 가상 서버가 사용자 요구 사항을 충족시키지 못할 경우 여러 Application Server 인스턴스를 사용할 수도 있습니다.
Application Server 인스턴스는 자동으로 시작되지 않습니다. 인스턴스를 시작하면 중지할 때까지 인스턴스가 실행됩니다. Application Server 인스턴스를 중지하면 Application Server 인스턴스는 더 이상 새 연결을 수락하지 않으며 해결되지 않은 모든 연결이 완료될 때까지 대기합니다. 시스템이 충돌하거나 오프라인이 되면 서버가 종료되므로 서버에서 처리 중이던 요청이 손실될 수 있습니다.
Application Server 인스턴스는 응용 프로그램 배포의 기본을 구성합니다. 각 인스턴스는 단일 도메인에 속하고 고유한 디렉토리 구조 구성 및 배포된 응용 프로그램을 갖습니다. 또한 서버 인스턴스마다 J2EE 플랫폼 웹과 EJB 컨테이너도 포함합니다. 모든 새로운 서버 인스턴스에는 인스턴스가 상주하는 시스템을 정의하는 노드 에이전트 이름에 대한 참조가 포함되어야 합니다.
작성할 수 있는 서버 인스턴스 유형은 세 가지입니다. 모든 서버 인스턴스는 다음 유형 중 하나입니다.
독립 실행형 서버 인스턴스는 다른 서버 인스턴스나 클러스터와 구성을 공유하지 않습니다.
공유 서버 인스턴스는 다른 인스턴스나 클러스터와 구성을 공유합니다.
클러스터링된 서버 인스턴스는 클러스터의 다른 인스턴스와 구성을 공유합니다.
클러스터는 동일한 응용 프로그램, 자원 및 구성 정보 집합을 공유하는 서버 인스턴스 그룹입니다. 서버 인스턴스는 하나의 클러스터에만 속할 수 있습니다. 무엇보다, 클러스터를 사용하면 여러 시스템 간 로드 배포를 통한 로드 균형 조정 및 인스턴스 수준 페일오버를 통한 고가용성이 가능합니다.
그림 1–2는 응용 프로그램 서버 인스턴스를 자세히 보여줍니다. Application Server 인스턴스는 Application Server Enterprise Edition의 클러스터링, 로드 균형 조정 및 세션 지속성 기능의 빌딩 블록입니다.
Application Server 인스턴스는 자동으로 시작되지 않습니다. 인스턴스를 시작하면 중지할 때까지 인스턴스가 실행됩니다. Application Server 인스턴스를 중지하면 Application Server 인스턴스는 더 이상 새 연결을 수락하지 않으며 해결되지 않은 모든 연결이 완료될 때까지 대기합니다. 시스템이 충돌하거나 오프라인이 되면 서버가 종료되므로 서버에서 처리 중이던 요청이 손실될 수 있습니다.
참고 항목:
일반 탭에서 다음 작업을 수행할 수 있습니다.
인스턴스 시작을 눌러 인스턴스를 시작합니다.
인스턴스 중지를 눌러 인스턴스를 중지합니다.
로그 파일 보기를 눌러 서버 로그 뷰어를 엽니다.
로그 파일 회전을 눌러 인스턴스의 로그 파일을 회전합니다.
이 작업을 수행하면 회전할 로그 파일이 예약됩니다. 다음 번에 로그 파일에 항목이 기록될 때 실제 회전이 발생합니다. 기본 서버(DAS)에 대해서는 회전이 즉시 발생하지만 다른 독립 실행형 서버에는 지연됩니다.
JNDI 찾아보기를 눌러 실행 중인 인스턴스의 JNDI 트리를 찾습니다.
트랜잭션 복구를 눌러 불완전한 트랜잭션을 복구합니다.
또한, 다음 탭을 선택하여 추가 작업을 수행할 수 있습니다.
응용 프로그램 탭: 선택한 응용 프로그램을 배포합니다.
자원 탭: 선택한 자원을 관리합니다.
등록 정보 탭: 인스턴스별 등록 정보를 구성합니다.
모니터 탭: JVM, 서버, 스레드 풀, HTTP 서비스 및 트랜잭션 서비스에 대한 모니터링 데이터를 조회합니다.
고급 탭: 응용 프로그램을 배포하기 위한 일반 등록 정보를 설정합니다.
응용 프로그램 탭에서 인스턴스와 연관된 선택된 응용 프로그램을 활성화, 비활성화 및 배포할 수 있습니다.
원하는 응용 프로그램의 확인란을 선택합니다.
배포 드롭다운 메뉴에서 배포할 응용 프로그램 모듈 유형을 선택합니다.
엔터프라이즈 응용 프로그램: EAR(엔터프라이즈 응용 프로그램 아카이브) 파일이나 디렉토리의 J2EE 응용 프로그램입니다.
웹 응용 프로그램: WAR(웹 응용 프로그램 아카이브) 파일이나 디렉토리에 패키지화된 JSP(JavaServer Page), 서블릿 및 HTML 페이지와 같은 웹 자원 집합입니다.
EJB 모듈: EJB JAR(Java 아카이브) 파일이나 디렉토리에 포함된 하나 이상의 Enterprise JavaBean(EJB 구성 요소)입니다.
커넥터 모듈: EIS(Enterprise Information System)에 연결되고 RAR(Resource Adapter Archive) 파일이나 디렉토리에 패키지화됩니다.
라이프사이클 모듈: 라이프사이클 모듈은 서버의 라이프사이클에서 한 개 이상의 이벤트로 실행되면 작업을 수행합니다.
응용 프로그램 클라이언트 모듈: J2EE 응용 프로그램 클라이언트 JAR 파일이라고도 하며 클라이언트에 대한 서버측 루틴이 포함되어 있습니다.
자원 탭에서 인스턴스와 연결할 새 자원 유형을 만들고 활성화 및 비활성화할 수 있습니다.
원하는 자원의 확인란을 선택합니다.
새로 만들기 드롭다운 메뉴에서 작성하여 해당 인스턴스와 연관시킬 자원 유형을 선택합니다.
JDBC: 데이터베이스에 연결할 수 있는 수단을 응용 프로그램에 제공합니다.
영구 관리자: 역방향 호환성을 위해 필요한 컨테이너 관리 지속성 Bean이 있는 응용 프로그램에 필요합니다.
JMS 연결 팩토리: 응용 프로그램에서 다른 JMS 객체를 프로그래밍 방식으로 만들 때 사용할 수 있는 객체입니다.
JMS 대상: 메일 및 메시징 응용 프로그램을 구축하기 위해 플랫폼과 프로토콜에 독립적인 프레임워크를 제공하는 JavaMail API의 메일 세션을 나타냅니다.
JavaMail: 메일 및 메시징 응용 프로그램을 구축하기 위해 플랫폼과 프로토콜에 독립적인 프레임워크를 제공합니다.
사용자 정의: JNDI 하위 컨텍스트, 자원 유형 및 팩토리 클래스 등이 정의되어 있는 비표준 자원을 나타냅니다.
외부: LDAP(Lightweight Directory Access Protocol) 저장소에서 외부 자원 객체를 찾을 수 있도록 응용 프로그램을 활성화합니다.
커넥터: 응용 프로그램을 EIS(Enterprise Information Systems)에 연결하는 프로그램 객체입니다.
관리 객체: JSR-160 호환 원격 JMX 커넥터를 구성합니다.
Administration Server 고급 설정을 사용하면 응용 프로그램을 배포하는 데 필요한 일반 등록 정보를 설정할 수 있습니다. 이러한 등록 정보를 사용하면 배포된 응용 프로그램에 대한 변경 사항을 감지하여 수정된 클래스를 다시 로드하는지 확인 및 모니터할 수 있습니다.
동적 재로드가 활성화된 경우 서버는 배포된 응용 프로그램의 파일의 변경 사항을 정기적으로 확인하고 변경 사항과 함께 응용 프로그램을 자동으로 다시 로드합니다. 코드 변경을 빠르게 테스트할 수 있기 때문에 동적 재로드는 개발 환경에서 유용합니다. 그러나 프로덕션 환경에서는 동적 재로드가 성능을 저하시킬 수 있습니다.
동적 재로드는 개발 환경을 위한 것입니다. 세션 지속성 기능인 프로덕션 환경 기능과 호환되지 않습니다. 동적 배포가 활성화된 경우 세션 지속성을 활성화하지 마십시오.
동적 재로드는 기본 서버 인스턴스에 대해서만 사용할 수 있습니다.
응용 프로그램 구성 페이지에서 동적 다시 로드를 구성하려면 다음을 구성합니다.
재로드: 재로드 사용 확인란을 사용하여 동적 재로드를 활성화하거나 비활성화합니다.
재로드 폴링 간격: 서버가 배포된 응용 프로그램의 변경 사항을 확인하는 빈도를 지정합니다.
관리 세션 시간 초과: 관리 세션 시간이 초과되어 다시 로그인해야 하기까지의 시간을 지정합니다.
자동 배포 기능을 사용하면 사전 패키지화되어 있는 응용 프로그램이나 모듈을 domain-dir/autodeploy 디렉토리에 복사하는 방법으로 배포할 수 있습니다.
예를 들어, hello.war라는 파일을 domain-dir /autodeploy 디렉토리로 복사합니다. 응용 프로그램을 배포 해제하려면 autodeploy 디렉토리에서 hello.war 파일을 제거합니다.
자동 배포 기능은 개발 환경을 위한 것입니다. 세션 지속성 기능인 프로덕션 환경 기능과 호환되지 않습니다. 동적 배포가 활성화되어 있으면 세션 지속성을 활성화하지 마십시오.
자동 배포는 기본 서버 인스턴스에 대해서만 사용할 수 있습니다.
응용 프로그램 구성 페이지로 이동합니다.
사용 확인란을 선택하거나 선택 해제하여 자동 배포를 활성화하거나 비활성화합니다.
자동 배포 폴링 간격 필드에서 서버가 응용 프로그램이나 모듈 파일의 자동 배포 디렉토리를 확인하는 빈도를 지정합니다.
폴링 간격을 변경해도 응용 프로그램이나 모듈을 배포하는데 걸리는 시간에 영향을 미치지 않습니다.
자동 배포 디렉토리에서 응용 프로그램을 구축할 디렉토리를 지정한 경우 파일을 기본 자동 배포 디렉토리에 복사할 필요가 없습니다.
기본적으로 변수를 사용하여 복수 서버 인스턴스에 대한 디렉토리를 수동으로 변경할 필요성을 제거합니다.
배포 전에 검증자를 실행하려면 검증자 사용 확인란을 선택합니다.
검증자는 파일의 구조와 내용을 검사합니다. 큰 응용 프로그램을 검증할 경우 시간이 많이 소모될 수 있습니다.
JSP 페이지를 사전 컴파일하려면 JSP 확인란을 선택합니다.
확인란을 선택하지 않은 경우, JSP 페이지는 처음 액세스되는 런타임 시 컴파일됩니다. 컴파일은 프로덕션 환경에서 시간이 많이 소요될 수 있으므로 확인란을 선택합니다.
등록 정보 추가 버튼을 눌러 추가 설정을 지정합니다.
다음 도메인 속성 등록 정보를 사용할 수 있습니다.
표 1–1 도메인 속성 값
등록 정보 |
정의 |
---|---|
com.sun.aas.installRoot |
Application Server가 설치된 디렉토리입니다. |
com.sun.aas.instanceRoot |
서버 인스턴스의 최상위 수준 디렉토리입니다. |
com.sun.aas.hostName |
호스트(시스템) 이름입니다. |
com.sun.aas.javaRoot |
.J2SE 설치 디렉토리입니다. |
com.sun.aas.imqLib |
Sun Java System Message Queue 소프트웨어의 라이브러리 디렉토리입니다. |
com.sun.aas.configName |
서버 인스턴스에서 사용할 구성 이름입니다. |
com.sun.aas.instanceName |
서버 인스턴스 이름입니다. 이 등록 정보는 기본 구성에는 사용할 수 없으나 사용자 정의된 구성에서는 사용 가능합니다. |
com.sun.aas.clusterName |
클러스터 이름입니다. 이 등록 정보는 클러스터링된 서버 인스턴스에만 설정됩니다. 이 등록 정보는 기본 구성에는 사용할 수 없으나 사용자 정의된 구성에서는 사용 가능합니다. |
com.sun.aas.domainName |
도메인 이름입니다. 이 등록 정보는 기본 구성에는 사용할 수 없으나 사용자 정의된 구성에서는 사용 가능합니다. |
인스턴스 특정 구성 등록 정보는 이 인스턴스에 대한 값을 대체합니다.
기본값은 인스턴스에 바인딩된 구성에 정의됩니다.
등록 정보 추가 버튼을 눌러 추가 설정을 지정합니다.
자원을 구성하는 데 다음 등록 정보 속성 이름 값 쌍을 사용할 수 있습니다.
등록 정보 |
정의 |
---|---|
HTTP_LISTENER_PORT |
이 포트를 사용하여 HTTP 요청을 수신합니다. 이 등록 정보는 http-listener-1의 포트 번호를 지정합니다. 유효한 값은 1-65535입니다. UNIX의 경우 포트 1-1024에서 수신하는 소켓을 만들려면 수퍼유저 권한이 있어야 합니다. |
HTTP_SSL_LISTENER_PORT |
이 포트를 사용하여 HTTPS 요청을 수신합니다. 이 등록 정보는 http-listener-2의 포트 번호를 지정합니다. 유효한 값은 1-655351입니다. UNIX의 경우 포트 1-1024에서 수신하는 소켓을 만들려면 수퍼유저 권한이 있어야 합니다. |
IIOP_LISTENER_PORT |
이 등록 정보는 orb-listener-1이 수신하는 IIOP 연결의 ORB Listener 포트를 지정합니다. |
IIOP_SSL_LISTENER_PORT |
이 포트는 보안 IIOP 연결에 사용합니다. |
JMX_SYSTEM_CONNECTOR_PORT |
이 등록 정보는 JMX 커넥터가 수신하는 포트 번호를 지정합니다. 유효한 값은 1-65535입니다. UNIX의 경우 포트1- 1024에서 수신하는 소켓을 만들려면 수퍼유저 권한이 있어야 합니다. |
IIOP_SSL_MUTUALAUTH_PORT |
이 등록 정보는 SSL_MUTUALAUTH라고 하는 IIOP Listener가 수신하는 IIOP 연결의 ORB Listener 포트를 지정합니다. |
트리 구성 요소에서 독립 실행형 인스턴스 노드를 선택합니다.
독립 실행형 서버 인스턴스 페이지에서 새로 만들기를 누릅니다.
이름 필드에서 새 인스턴스의 고유한 이름을 식별합니다.
노드 에이전트를 선택합니다.
노드 에이전트는 만들어질 서버 인스턴스가 해당 노드 에이전트와 연결될 수 있도록 노드 에이전트의 호스트 시스템에서 asadmin start-node-agent 명령을 사용하여 시작해야 합니다.
원하는 구성을 선택합니다.
다른 구성에서 복사하려면 새로운 인스턴스를 작성할 때 지정합니다.
기본적으로 default-config 구성에서 복사한 구성을 사용하여 새로운 구성이 만들어집니다.
서버 인스턴스의 경우 새 구성 이름은 instance-name-config입니다.
구성 default-config는 독립 실행형 서버 인스턴스를 만들기 위한 템플리트 역할을 하는 기본 구성입니다. 어떤 클러스터링된 서버 인스턴스나 클러스터도 default-config 구성을 참조할 수 없습니다. 이 구성은 새로운 구성을 만들기 위해서 복사만 할 수 있습니다. 복사한 새로운 구성에 올바른 초기 설정이 있도록 기본 구성을 편집합니다.
create-instance
트리 구성 요소에서 독립 실행형 인스턴스 노드를 확장합니다.
시작할 인스턴스를 선택합니다.
일반 탭에서 시작을 눌러 인스턴스를 시작합니다.
인스턴스를 제대로 시작하려면 인스턴스와 연관된 노드 에이전트를 asadmin start-node-agent 명령을 사용하여 시작해야 합니다.
인스턴스를 시작하면 일반 탭에서 다음 작업을 수행할 수 있습니다.
start-instance
서버나 자원 관리자의 문제로 인해 트랜잭션이 완료되지 않을 수 있습니다. 이 경우, 문제가 있는 트랜잭션을 완료하고 실패를 복구해야 합니다. Application Server는 이 실패를 복구하고 서버 시작 시 트랜잭션을 완료하도록 설계되었습니다.
선택한 서버가 실행 중이면 해당 서버에서 복구를 수행합니다. 선택한 서버가 실행 중이 아니면 선택한 대상 서버에서 복구를 수행합니다.
stop-instance