Agent Builder에서 자원 유형 만들기를 완료한 후 Create 화면에서 Next 버튼을 선택하면 다음 그림과 같이 Configure 화면이 나타납니다. 자원 유형을 만들기 전에는 Configure 화면을 액세스할 수 없습니다.
Configure 화면에는 다음과 같은 필드가 있습니다.
Start Command — 기본 응용 프로그램을 시작하기 위해 UNIX 쉘에 전달할 수 있는 전체 명령줄입니다. 사용자는 반드시 이 명령을 지정해야 합니다. 제공된 필드에 해당 명령을 입력하거나 Browse 버튼을 사용하여 명령이 포함된 파일을 찾아 응용 프로그램을 시작할 수 있습니다.
전체 명령줄에는 호스트 이름, 포트 번호, 구성 파일 경로 등과 같이 응용 프로그램을 시작하는 데 필요한 모든 것이 포함되어야 합니다. 응용 프로그램에서 명령줄에 호스트 이름을 지정하도록 요구하는 경우 Agent Builder에서 정의한 $hostnames 변수를 사용할 수 있습니다(Agent Builder $hostnames 변수 사용 참조).
명령을 큰따옴표(“”)로 묶지 마십시오.
기본 응용 프로그램에 다중 독립 프로세스 트리가 있고 각 프로세스가 PMF 제어의 고유한 태그로 시작할 경우 단일 명령을 지정할 수 없습니다. 반대로 각 프로세스 트리를 시작하는 개별 명령을 사용하여 텍스트 파일을 작성하고 시작 명령 텍스트 필드에서 이 파일의 경로를 지정해야 합니다. 이 파일이 제대로 작동하기 위한 일부 특성을 나열하는 다중 독립 프로세스 트리를 가진 자원 유형 만들기를 참조하십시오.
Stop Command — 기본 응용 프로그램을 중지하기 위해 UNIX 쉘에 전달할 수 있는 전체 명령줄입니다. 제공된 필드에 명령을 입력하거나 Browse 버튼을 사용하여 응용 프로그램을 중지하는 명령이 포함된 파일을 찾을 수 있습니다. 응용 프로그램에서 명령줄에 호스트 이름을 지정하도록 요구하는 경우 Agent Builder에서 정의한 $hostnames 변수를 사용할 수 있습니다(Agent Builder $hostnames 변수 사용 참조).
이 명령은 선택 사항입니다. 중지 명령을 지정하지 않은 경우에는 생성된 코드에서 다음과 같은 신호(Stop 메소드에서)를 사용하여 응용 프로그램을 중지합니다.
Stop 메소드는 SIGTERM을 보내 응용 프로그램을 중지하고 시간 초과값의 80% 동안 대기한 다음 응용 프로그램을 종료합니다.
SIGTERM 신호가 실패한 경우 Stop 메소드는 SIGKILL을 보내 응용 프로그램을 중지하고 시간 초과값의 15% 동안 대기한 다음 응용 프로그램을 종료합니다.
SIGKILL이 실패한 경우 Stop 메소드는 오류 상태로 종료됩니다. (시간 초과값의 나머지 5%는 오버헤드를 위해 예약됩니다.)
응용 프로그램이 완전히 중지되기 전에 중지 명령이 반환되지 않도록 합니다.
Probe Command — 주기적으로 실행하여 응용 프로그램의 상태를 확인하고 0 (성공)과 100 (완전한 실패) 사이의 적절한 종료 상태를 반환할 수 있는 명령입니다. 이 명령은 선택 사항입니다. 명령에 대한 전체 경로를 입력하거나 Browse 버튼을 사용하여 응용 프로그램을 검사하기 위한 명령이 포함된 파일을 찾을 수 있습니다.
일반적으로 기본 응용 프로그램의 단순 클라이언트를 지정합니다. 검사 명령을 지정하지 않은 경우 생성된 코드는 자원에 사용된 포트에 연결하거나 연결을 끊습니다. 이에 성공하면 응용 프로그램의 상태가 좋은 것입니다. 네트워크 인식 응용 프로그램에만 검사 명령을 사용할 수 있습니다. Agent Builder에서는 항상 검사 명령을 생성하지만, 네트워크 비인식 응용 프로그램에는 사용할 수 없습니다.
응용 프로그램에서 검사 명령줄에 호스트 이름을 지정하도록 요구할 경우 Agent Builder에서 정의한 $hostnames 변수를 사용할 수 있습니다(Agent Builder $hostnames 변수 사용 참조).
Timeout — (각 명령의 경우)—각 명령에 대한 시간 초과값(초)입니다. 새 값을 지정하거나 Agent Builder에서 제공하는 기본값(시작 및 중지의 경우 300초, 검사의 경우 30초)을 사용할 수 있습니다.
많은 응용 프로그램, 특히 네트워크 인식 응용 프로그램의 경우 고객 요청을 수신 및 처리하는 응용 프로그램의 호스트 이름을 명령줄의 응용 프로그램에 전달해야 합니다. 따라서 대부분의 경우 호스트 이름은 (Configure 화면에서) 대상 자원 유형에 대한 시작, 중지 및 검사 명령에 지정해야 할 매개 변수입니다. 그러나 응용 프로그램이 수신하는 호스트 이름은 클러스터에 관련된 것으로 해당 자원이 클러스터에 실행될 때 확인되며 Agent Builder에서 사용자 자원 유형 코드를 생성할 때는 확인할 수 없습니다.
이 문제를 해결하기 위해 Agent Builder는 $hostnames 변수를 제공하여 사용자가 명령줄에서 시작, 중지 및 검사 명령을 지정할 수 있도록 합니다. 다음 예와 같이 $hostnames 변수를 실제 호스트 이름과 같이 정확하게 지정합니다.
/opt/network_aware/echo_server -p port_no -l $hostnames |
대상 자원 유형의 자원이 클러스터에서 실행될 경우에는 자원의 Network_resources_used 자원 등록 정보에서 해당 자원에 대해 구성된 LogicalHostname 또는 SharedAddress 호스트 이름이 $hostnames 변수 값으로 대체됩니다.
멀티 호스트 이름을 가진 Network_resources_used 등록 정보를 구성한 경우 $hostnames 변수에는 모든 호스트 이름이 쉼표로 구분되어 포함됩니다.
Agent Builder는 둘 이상의 독립적인 프로세스 트리를 가진 응용 프로그램에 대한 자원 유형을 만들 수 있습니다. 이러한 프로세스 트리는 PMF에서 개별적으로 모니터하고 시작한다는 점에서 독립적입니다. PMF는 고유한 태그를 사용하여 각 프로세스를 시작합니다.
Agent Builder를 사용하면 사용자가 지정한 생성된 소스 코드가 C일 경우에만 다중 독립 프로세스 트리를 가진 자원 유형을 만들 수 있습니다. Agent Builder를 사용하여 ksh나 GDS에 대한 이러한 자원 유형을 만들 수 없습니다. ksh 또는 GDS에 대해 이러한 자원 유형을 만들려면 수동으로 코드를 작성해야 합니다.
다중 독립 프로세스 트리를 가진 기본 응용 프로그램의 경우 단일 명령줄을 지정하여 응용 프로그램을 시작할 수 없습니다. 그보다는 텍스트 파일을 만들어 각각의 줄이 명령에 대한 전체 경로를 지정하여 응용 프로그램 프로세스 트리 중 하나를 시작해야 합니다. 이 파일의 모든 줄은 공백이 아니어야 합니다. Configure 화면의 Start Command 텍스트 필드에 이 텍스트 파일을 지정합니다.
이 파일에 실행 권한을 부여하지 않으면 Agent Builder에서 이 파일을 구별하여 단순 실행 가능 스크립트로 여러 프로세스 트리를 시작할 수 있습니다. 텍스트 파일에 실행 권한이 제공된 경우 해당 자원은 클러스터에 정상으로 나타나지만 모든 명령은 하나의 PMF 태그에서 시작됩니다. 따라서 PMF에서 개별적으로 프로세스 트리를 모니터 및 다시 시작할 수 없습니다.