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, svcs 및 auths 등의 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용 domain1을 password.txt라는 비밀번호 파일을 사용하여 다시 시작하려면 다음을 입력합니다.


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

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

노드 에이전트를 다시 시작하기 위한 구문도 유사합니다. 예를 들어, opt/SUNWappserver 디렉토리에 설치된 Application Server용 agent1을 password.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.exe 및 appserverAgentService.exe 실행 파일을 Microsoft에서 제공되는 서비스 제어 명령(sc.exe)과 함께 사용합니다.

sc.exe 명령은 Windows XP에서 제공되며 Windows 설치 디렉토리의 system32라는 하위 디렉토리(일반적으로 C:\windows\system32 또는 C:\winnt\system32)에 있습니다. 현재 Windows 2000 sc.exe는 ftp://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.exe 및 appservAgentService.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 start 및 stop 명령과 서비스 시작 및 중지를 같이 사용하면 안 됩니다. 이 둘을 같이 사용하면 서버 상태가 비동기화될 수 있습니다. 예를 들어 구성 요소가 실행되지 않아도 서비스에서 구성 요소가 실행되었다고 표시할 수 있습니다. 이런 상황을 방지하려면 서비스를 사용할 때 항상 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를 자동으로 다시 시작할 때 관리 비밀번호와 마스터 비밀번호가 필요합니다. 개발자 프로필을 사용하는 경우

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