Sun Java System Application Server 9.1 관리 설명서

부록 A 도메인 또는 노드 에이전트 자동 재시작

도메인이나 노드 에이전트가 예기치 않게 정지된 경우(예: 시스템을 다시 시작해야 할 경우) 도메인이나 노드 에이전트를 자동으로 다시 시작하도록 시스템을 구성할 수 있습니다.

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

Solaris 10에서 자동으로 다시 시작

Solaris 10 사용자는 asadmin create-service 명령을 사용하여 노드 에이전트 또는 DAS(Domain Administration Server)를 다시 시작하는 서비스를 만들 수 있습니다. 만들어진 서비스에는 SMF(Solaris Service Management Facility)가 사용됩니다.

서비스가 시작하는 프로세스는 서비스를 통해 다시 시작하는 대상이 DAS인지 노드 에이전트인지 여부에 따라 다릅니다.

서비스는 프로세스를 실행하는 사용자의 권한을 프로세스에 부여합니다. asadmin create-service 명령을 사용하여 SMF 서비스를 만들 경우 기본 사용자는 수퍼유저입니다. 다른 사용자가 프로세스를 실행해야 하는 경우 method_credential에 사용자를 지정합니다.

프로세스가 Solaris OS의 권한이 설정된 포트에 바인딩되는 경우 프로세스에 net_privaddr 권한이 필요합니다. Solaris OS에서 권한이 설정된 포트의 포트 번호는 1024보다 작은 숫자입니다.

사용자에게 net_privaddr 권한이 있는지 확인하려면 해당 사용자로 로그인하여 ppriv -l | grep net_privaddr 명령을 입력합니다.

asadmin create-service 명령을 실행하려면 solaris.smf.* 권한이 있어야 합니다. 권한을 설정하는 방법을 보려면 useradd usermod 설명서 페이지를 참조하십시오. 다음 디렉토리 트리에 대한 쓰기 권한도 있어야 합니다. /var/svc/manifest/application/SUNWappserver. 일반적으로 수퍼유저에게는 이 두 가지 권한이 모두 있습니다. 또한 PATH에 svccfg, svcsauths 등의 Solaris 10 관리 명령을 사용할 수 있어야 합니다. 이 명령 실행에 대한 자세한 내용은 create-service(1)를 참조하십시오.

구문은 다음과 같습니다.


asadmin create-service [--name service-name] [--type das|node-agent]
--passwordfile password-file [--serviceproperties serviceproperties] 
domain-or-node-agent-configuration-directory

    예를 들어 domain1에 대해 domain1이라는 서비스를 만들려면

  1. 다음을 실행합니다.

    asadmin create-service --type das --passwordfile password.txt /appserver/domains/domain1

    이렇게 하면 domain1이라는 도메인을 자동으로 다시 시작하는 서비스가 만들어집니다. 이 명령은 백그라운드에서 템플리트를 사용하여 매니페스트 파일을 만들고 검증한 후 이를 서비스로 가져옵니다.


    주 –

    특정 Application Server 도메인에 기본 사용자 권한이 없어야 하는 경우에는 서비스의 매니페스트를 수정한 후 서비스를 다시 가져오십시오. 사용자의 권한을 확인하려면 해당 사용자로 로그인하여 ppriv -l 명령을 입력합니다.


  2. 서비스가 만들어지면 svacdm enable 명령을 사용하여 활성화합니다.

    svacdm enable /appserver/domains/domain1

  3. 서비스가 활성화되면 도메인이 다운되었을 때 SMF에서 이를 다시 시작합니다.

서비스를 관리할 때는 다음과 같은 Solaris 명령이 유용합니다.

이러한 명령에 대한 자세한 내용은 명령 설명서 페이지를 참조하십시오.

Solaris 9 및 Linux 플랫폼에서 inittab를 사용하여 자동으로 다시 시작

Solaris 9 또는 Linux 플랫폼에서 도메인을 다시 시작하려면 /etc/inittab 파일에 텍스트 줄을 추가합니다.

/etc/rc.local 또는 이와 상응하는 시스템을 사용하는 경우 원하는 asadmin 명령을 호출하는 /etc/rc.local에 줄을 추가합니다.

예를 들어, opt/SUNWappserver 디렉토리에 설치된 Application Server용 domain1password.txt라는 비밀번호 파일을 사용하여 다시 시작하려면 다음을 입력합니다.


das:3:respawn:/opt/SUNWappserver/bin/asadmin start-domain --user admin 
--passwordfile /opt/SUNWappserver/password.txt domain1

텍스트를 한 줄로 입력합니다. 처음 세 문자는 프로세스의 고유한 지정자이며 변경할 수 있습니다.

노드 에이전트를 다시 시작하기 위한 구문도 유사합니다. 예를 들어, opt/SUNWappserver 디렉토리에 설치된 Application Server용 agent1password.txt라는 비밀번호 파일을 사용하여 다시 시작하려면 다음을 입력합니다.


das:3:respawn:/opt/SUNWappserver/bin/asadmin start-node-agent --user admin 
--passwordfile /opt/SUNWappserver/password.txt agent1

Microsoft Windows 플랫폼에서 자동으로 다시 시작

Microsoft Windows에서 자동으로 다시 시작하려면 Windows 서비스를 만들고 사용자가 로그아웃할 때 이 서비스가 종료되지 않도록 설정합니다.

Windows 서비스 만들기

Sun Java System Application Server에서 제공되는 appservService.exeappserverAgentService.exe 실행 파일을 Microsoft에서 제공되는 서비스 제어 명령(sc.exe)과 함께 사용합니다.

sc.exe 명령은 Windows XP에서 제공되며 Windows 설치 디렉토리의 system32라는 하위 디렉토리(일반적으로 C:\windows\system32 또는 C:\winnt\system32)에 있습니다. 현재 Windows 2000 sc.exeftp://ftp.microsoft.com/reskit/win2000/sc.zip에서 다운로드할 수 있습니다. sc.exe 사용에 대한 자세한 정보는 http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dndllpro/html/msdn_scmslite.asp를 참조하십시오.

다음과 같이 appservService.exeappservAgentService.exe를 사용합니다.

C:\winnt\system32\sc.exe create service-name binPath= \"fully-qualified-path-to-appservService.exe 
\"fully-qualified-path-to-asadmin.bat start-command\" 
\"fully-qualified-path-to-asadmin.bat stop-command\"" 
start= auto DisplayName= "display-name"

주 –

binpath와 등호 기호(=) 사이에는 공백이 없습니다. 등호 기호 뒤, 경로 앞에는 공백이 있어야 합니다.


예를 들어 비밀번호 파일 C:\Sun\AppServer\password.txt를 사용하여 domain1을 시작 및 중지하는 SunJavaSystemAppServer DOMAIN1이라는 서비스를 만들려면 다음을 입력합니다.

C:\windows\system32\sc.exe create domain1 binPath= 
"C:\Sun\AppServer\lib\appservService.exe \"C:\Sun\AppServer\bin\asadmin.bat 
start-domain --user admin --passwordfile C:\Sun\AppServer\password.txt domain1\" 
\"C:\Sun\AppServer\bin\asadmin.bat stop-domain domain1\"" start= auto 
DisplayName= "SunJavaSystemAppServer DOMAIN1"

노드 에이전트 agent1을 시작 및 중지하는 서비스를 만들려면 다음을 입력합니다.

C:\windows\system32\sc.exe create agent1 binPath= 
"C:\Sun\AppServer\lib\appservAgentService.exe \"C:\Sun\AppServer\bin\asadmin.bat 
start-node-agent --user admin --passwordfile C:\Sun\AppServer\password.txt agent1\" 
\"C:\Sun\AppServer\bin\asadmin.bat stop-node-agent agent1\"" start= auto 
DisplayName= "SunJavaSystemAppServer AGENT1"

주 –

binPath= 매개 변수의 일부로 입력한 시작 및 중지 명령의 구문이 정확해야 합니다. 테스트하려면 명령 프롬프트에서 명령을 실행합니다. 명령을 실행해도 도메인이나 노드 에이전트가 제대로 시작되거나 중지되지 않으면 서비스가 올바로 작동하지 않습니다.



주 –

asadmin startstop 명령과 서비스 시작 및 중지를 같이 사용하면 안 됩니다. 이 둘을 같이 사용하면 서버 상태가 비동기화될 수 있습니다. 예를 들어 구성 요소가 실행되지 않아도 서비스에서 구성 요소가 실행되었다고 표시할 수 있습니다. 이런 상황을 방지하려면 서비스를 사용할 때 항상 sc.exe 명령을 사용하여 구성 요소를 시작 및 중지합니다.


sc.exe create 명령으로 서비스가 제대로 만들어지지 않은 경우에는 서비스를 삭제하고 다시 시도하십시오. 서비스를 삭제하려면 sc.exe delete "service-name" 명령을 사용합니다.

사용자가 로그아웃할 때 서비스 종료 방지

기본적으로 Java VM은 운영 체제가 종료 중이거나 사용자가 로그아웃 중임을 알리는 신호를 Windows에서 포착하여 자체적으로 종료합니다. 이 동작으로 인해 사용자가 Windows에서 로그아웃할 때 Application Server 서비스가 종료됩니다. 사용자가 로그아웃할 때 서비스가 종료되지 않도록 하려면 Java VM 옵션 -Xrs를 설정합니다.

Java VM 옵션 -Xrs를 설정하려면 Java VM 옵션을 정의하는 as-install\domains\domain-name\config\domain.xml 파일의 섹션에 다음 줄을 추가합니다.

<jvm-options>-Xrs</jvm-options>

Application Server 서비스가 실행 중인 경우에는 서비스를 중지했다가 다시 시작해야 변경 내용이 적용됩니다.


주 –

일부 Windows 2003 Server 설치에서는 -Xrs 옵션을 domain.xml 파일에 추가해도 서비스가 종료됩니다. 이 경우에는 다음과 같이 as-install\lib\processLauncher.xml 파일에 옵션을 추가합니다.

<process name="as-service-name">
   ...
   <sysproperty key="-Xrs"/>
   ...

자동 재시작 보안

클러스터 또는 엔터프라이즈 프로필을 사용하는 경우 Application Server를 자동으로 다시 시작할 때 관리 비밀번호와 마스터 비밀번호가 필요합니다. 개발자 프로필을 사용하는 경우

다음 중 한 가지 방법으로 클러스터 및 엔터프라이즈 프로필에 대한 비밀번호 및 마스터 비밀번호 요구 사항을 처리합니다.