Microsoft 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"/> ...