Sun Java System Application Server Enterprise Edition 8.2 관리 설명서

2장 응용 프로그램 배포

이 장에서는 Application Server에서 J2EE 응용 프로그램을 배포(설치)하는 방법에 대해 설명합니다. 이 장은 다음 내용으로 구성되어 있습니다.

배포 라이프사이클

Application Server를 설치하고 도메인을 시작한 후 J2EE 응용 프로그램과 모듈을 배포(설치)할 수 있습니다. 배포 중, 그리고 응용 프로그램이 변경되면 응용 프로그램 또는 모듈은 다음 단계를 거칩니다.

  1. 초기 배포

    응용 프로그램 또는 모듈을 배포하기 전에 도메인을 시작합니다.

    특정한 독립 실행형 서버 인스턴스나 클러스터에 응용 프로그램이나 모듈을 배포(설치)합니다. 응용 프로그램과 모듈은 아카이브 파일로 패키지화되므로 배포 중에 아카이브 파일 이름을 지정합니다. 기본값은 기본 서버 인스턴스 server로 배포하는 것입니다.

    서버 인스턴스 또는 클러스터에 배포한 경우 응용 프로그램이나 모듈은 도메인의 중앙 저장소에 있게 되며 배포가 수행된 클러스터 또는 서버 인스턴스가 이를 대상으로 참조합니다.

    관리 콘솔 대신 asadmin deploy 명령을 사용하여 도메인에 배포할 수도 있습니다. 응용 프로그램이나 모듈을 도메인에만 배포할 경우 응용 프로그램이나 모듈은 도메인의 중앙 저장소에 존재하지만 참조를 추가할 때까지는 서버 인스턴스나 클러스터에 의해 참조되지 않습니다.

    배포는 동적입니다. 응용 프로그램을 사용하기 위해 응용 프로그램이나 모듈을 배포한 후 서버 인스턴스를 다시 시작할 필요가 없습니다. 다시 시작할 경우 모든 배포된 응용 프로그램과 모듈이 배포되고 사용 가능하게 됩니다.

  2. 활성화 또는 비활성화

    기본적으로 배포된 응용 프로그램 또는 모듈은 활성화되어 있습니다. 이는 액세스 가능한 서버 인스턴스나 클러스터에 응용 프로그램을 배포한 경우 이를 실행할 수 있고 클라이언트에서 액세스할 수 있음을 의미합니다. 액세스를 방지하려면 응용 프로그램이나 모듈을 비활성화합니다. 비활성화된 응용 프로그램이나 모듈은 도메인에서 제거되지 않으므로 배포 후 쉽게 활성화할 수 있습니다.

  3. 배포된 응용 프로그램이나 모듈의 대상 추가 또는 삭제

    일단 배포되면 응용 프로그램이나 모듈은 중앙 저장소에 있게 되고 여러 서버 인스턴스 및/또는 클러스터가 이를 참조할 수 있습니다. 처음에는 배포 대상인 서버 인스턴스나 클러스터에서 응용 프로그램이나 모듈을 참조합니다.

    응용 프로그램이나 모듈을 배포한 후 이를 참조하는 서버 인스턴스와 클러스터를 변경하려면 관리 콘솔을 사용하여 응용 프로그램이나 모듈의 대상을 변경하거나 asadmin 도구를 사용하여 응용 프로그램 참조를 변경합니다. 응용 프로그램이 중앙 저장소에 저장되기 때문에 대상을 추가하거나 삭제하면 다른 대상에 있는 동일한 버전의 응용 프로그램이 추가되거나 삭제됩니다. 그러나 둘 이상의 대상에 배포된 응용 프로그램은 한 대상에서 활성화하고 다른 대상에서는 비활성화할 수 있습니다. 대상에서 응용 프로그램을 참조하더라도 해당 대상에서 응용 프로그램을 활성화하지 않으면 사용자가 사용할 수 없습니다.

  4. 재배포

    배포된 응용 프로그램이나 모듈을 대체하려면 다시 배포하십시오. 재배포는 자동으로 이전에 배포된 응용 프로그램이나 모듈의 배포를 취소하고 이를 새 응용 프로그램이나 모듈로 대체합니다.

    관리 콘솔을 통해 재배포하면 재배포된 응용 프로그램이나 모듈은 도메인으로 배포되고 동적 재구성을 활성화한 경우, 이를 참조하는 모든 독립 실행형 또는 클러스터링된 서버 인스턴스는 자동으로 새로운 버전을 수신합니다. asadmin deploy 명령을 사용하여 재배포하는 경우 domain을 대상으로 지정합니다.

    프로덕션 환경의 경우 서비스를 중단하지 않은 채 응용 프로그램을 업그레이드하는 롤링 업그레이드를 사용합니다.

  5. 배포 해제

    응용 프로그램이나 모듈을 제거하려면 배포 해제합니다.

자동 배포

자동 배포 기능을 사용하면 사전에 패키지화되어 있는 응용 프로그램이나 모듈을 domain-dir/autodeploy 디렉토리에 복사하는 방법으로 배포할 수 있습니다.

예를 들어, hello.war라는 파일을 domain-dir /autodeploy 디렉토리로 복사합니다. 응용 프로그램을 배포 해제하려면 autodeploy 디렉토리에서 hello.war 파일을 제거합니다.

관리 콘솔이나 asadmin 도구를 사용하여 응용 프로그램을 배포 해제할 수도 있습니다. 이러한 경우 아카이브 파일이 그대로 유지됩니다.


주 –

자동 배포는 기본 서버 인스턴스에 대해서만 사용할 수 있습니다.


자동 배포 기능은 개발 환경을 위한 것입니다. 세션 지속성 기능인 프로덕션 환경 기능과 호환되지 않습니다. 자동 배포가 활성화된 경우 세션 지속성을 활성화하지 마십시오.

압축 해제된 응용 프로그램 배포

이 기능은 고급 개발자를 위한 것입니다.

기본 서버 인스턴스(서버)에 배포할 때만 디렉토리 배포를 사용합니다. 클러스터나 독립 실행형 서버 인스턴스에 배포할 때는 사용할 수 없습니다.

압축 해제된 응용 프로그램이나 모듈을 포함하는 디렉토리는 확장된 디렉토리라고 합니다. 디렉토리의 내용은 해당 J2EE 아카이브 파일의 내용과 일치해야 합니다. 예를 들어 디렉토리에서 웹 응용 프로그램을 배포할 경우 디렉토리의 내용은 해당하는 WAR 파일과 동일해야 합니다. 필요한 디렉토리 내용에 대한 정보는 해당 사양을 참조하십시오.

확장된 디렉토리에서 직접 배포 설명자 파일을 변경할 수 있습니다.

동적 재로드를 사용하도록 환경을 구성한 경우 디렉토리에서 배포된 응용 프로그램을 동적으로 재로드할 수도 있습니다. 자세한 내용은 고급 설정 구성을 참조하십시오.

배포 계획 사용

이 기능은 고급 개발자를 위한 것입니다.

배포 계획은 Application Server에 관련된 배포 설명자만 포함하는 JAR 파일입니다. 이 배포 설명자(예: sun-application.xml)는 Application Server Developer’s Guide에 설명되어 있습니다. 배포 계획은 JSR 88: J2EE 응용 프로그램 배포 구현의 일부입니다. Application Server에 관련된 배포 설명자를 포함하지 않는 응용 프로그램이나 모듈을 배포하려면 배포 계획을 사용합니다.

배포 계획을 사용하여 배포하려면 asadmin deploy 명령의 --deploymentplan 옵션을 지정합니다. 예를 들어, 다음 명령은 myrosterapp.ear 파일에서 지정한 계획에 따라 mydeployplan.jar 파일에 엔터프라이즈 응용 프로그램을 배포합니다.


$ asadmin deploy --user admin ---deploymentplan mydeployplan.jar myrosterapp.ear

엔터프라이즈 응용 프로그램(EAR)의 배포 계획 파일에서 sun-application.xml 파일은 루트에 있습니다. 각 모듈의 배포 설명자는 이 구문에 따라 저장됩니다. module-name.sun-dd-name, 여기서 sun-dd-name은 모듈 유형에 따라 다릅니다. 모듈에 CMP 매핑 파일이 포함된 경우 파일 이름은 module-name.sun-cmp-mappings.xml이 됩니다. .dbschema 파일은 슬래시(/) 문자가 파운드 기호(#)로 대체되어 루트 수준에 저장됩니다. 다음 목록에서는 엔터프라이즈 응용 프로그램(EAR)에 대한 배포 계획 파일의 구조를 보여줍니다.

$ jar -tvf mydeployplan.jar
420 Thu Mar 13 15:37:48 PST 2003 sun-application.xml
370 Thu Mar 13 15:37:48 PST 2003 RosterClient.war.sun-web.xml
418 Thu Mar 13 15:37:48 PST 2003 roster-ac.jar.sun-application-client.xml
1281 Thu Mar 13 15:37:48 PST 2003 roster-ejb.jar.sun-ejb-jar.xml
2317 Thu Mar 13 15:37:48 PST 2003 team-ejb.jar.sun-ejb-jar.xml
3432 Thu Mar 13 15:37:48 PST 2003 team-ejb.jar.sun-cmp-mappings.xml
84805 Thu Mar 13 15:37:48 PST 2003 team-ejb.jar.RosterSchema.dbschema

웹 응용 프로그램이나 모듈 파일의 배포 계획에서 Application Server에 관련된 배포 설명자는 루트 수준에 있습니다. 독립 실행형 EJB 모듈에 CMP Bean이 포함된 경우 배포 계획의 루트 수준에 sun-cmp-mappings.xml.dbschema 파일이 포함됩니다. 다음 목록에서 배포 계획은 CMP Bean을 설명합니다.

$ jar r -tvf myotherplan.jar
3603 Thu Mar 13 15:24:20 PST 2003 sun-ejb-jar.xml
3432 Thu Mar 13 15:24:20 PST 2003 sun-cmp-mappings.xml
84805 Thu Mar 13 15:24:20 PST 2003 RosterSchema.dbschema

deploytool 유틸리티 사용

소프트웨어 개발자를 위해 설계된 deploytool 유틸리티는 J2EE 응용 프로그램과 모듈을 패키지화하고 배포합니다. deploytool 사용 방법에 대한 지침은 J2EE 1.4 Tutorial을 참조하십시오.

J2EE 아카이브 파일의 유형

소프트웨어 공급자가 응용 프로그램이나 모듈을 아카이브 파일로 패키지화합니다. 응용 프로그램이나 모듈을 배포하려면 아카이브 파일 이름을 지정합니다. 아카이브 파일의 내용과 구조는 J2EE 플랫폼의 사양에 의해 정의됩니다. J2EE 아카이브 파일의 유형은 다음과 같습니다.

소프트웨어 공급자가 응용 프로그램을 하나의 파일이나 별도의 WAR, EJB JAR 및 응용 프로그램 클라이언트 JAR 파일로 어셈블할 수 있습니다. 관리 도구에서 배포 페이지와 명령은 모든 유형의 파일에 대해 유사합니다.

이름 지정 규약

해당 도메인에서 배포된 응용 프로그램과 모듈의 이름은 고유해야 합니다.

응용 프로그램 내에서 유형이 다른 모듈은 동일한 이름을 가질 수 있습니다. 응용 프로그램을 배포할 때 개별 모듈이 있는 디렉토리 이름에는 _jar, _war_rar 접미어가 붙습니다. 응용 프로그램 내에서 유형이 같은 모듈은 이름이 고유해야 합니다. 또한 데이터베이스 스키마 파일 이름은 응용 프로그램 내에서 고유해야 합니다.

ejb-jar.xml 파일의 <module-name> 부분에서 볼 수 있는 모듈 파일 이름, EAR 파일 이름, 모듈 이름과 ejb-jar.xml파일의 <ejb-name> 부분에서 볼 수 있는 EJB 이름에는 Java 패키지와 같은 이름 지정 스키마를 사용하는 것이 좋습니다. 이렇게 패키지와 비슷한 이름 지정 스키마를 사용하면 이름 충돌을 방지할 수 있습니다. 이러한 이름 지정의 이점은 Application Server 뿐만 아니라 다른 J2EE 응용 프로그램 서버에도 적용됩니다.

EJB 구성 요소에 대한 JNDI 조회 이름도 고유해야 합니다. 일관된 이름 지정 규약을 설정하는 것이 좋습니다. 예를 들어, EJB 이름에 응용 프로그램 이름과 모듈 이름을 추가하는 것도 고유한 이름을 유지하는 한 가지 방법입니다. 이 경우 mycompany.pkging.pkgingEJB.MyEJB는 응용 프로그램 pkging.ear에 패키지화된 pkgingEJB.jar 모듈의 EJB에 대한 JNDI 이름이 됩니다.

운영 체제에서 사용할 수 없는 공백이나 문자가 패키지 및 파일 이름에 포함되지 않도록 합니다.