Solaris OS용 Sun Cluster 데이터 서비스 개발 안내서

콜백 메소드 구현

이 절에서는 콜백 메소드 구현에 관련된 일반적인 정보를 제공합니다.

자원 및 자원 그룹 등록 정보 액세스

일반적으로 콜백 메소드는 자원 등록 정보 액세스해야 합니다. RMAPI에서는 자원의 시스템 정의 등록 정보와 확장 등록 정보를 액세스하기 위해 콜백 메소드에서 사용할 수 있는 쉘 명령과 C 함수를 모두 제공합니다. scha_resource_get(1HA)scha_resource_get(3HA) 설명서 페이지를 참조하십시오.

DSDL에서는 시스템 정의 등록 정보를 액세스하기 위한 C 함수 세트(각 등록 정보마다 하나의 함수)와 확장 등록 정보를 액세스하기 위한 함수를 제공합니다. scds_property_functions(3HA)scds_get_ext_property(3HA) 설명서 페이지를 참조하십시오.

StatusStatus_msg 외에는 자원 등록 정보 설정을 위해 사용할 수 있는 API 함수가 없기 때문에 등록 정보 기법을 사용하여 데이터 서비스의 동적 상태 정보를 저장할 수 없습니다. 그보다는 전역 파일에 동적 상태 정보를 저장해야 합니다.


주 –

클러스터 관리자는 scrgadm 명령을 사용하거나 사용 가능한 그래픽 관리 명령 또는 인터페이스를 통해 특정한 자원 등록 정보를 설정할 수 있습니다. 그러나 클러스터 재구성 도중, 즉 RGM에서 메소드를 호출할 때 scrgadm이 실패하므로 콜백 메소드에서 scrgadm을 호출하지 마십시오.


메소드의 멱등원

일반적으로 RGM은 동일한 인자를 가진 동일한 자원에 연속해서 둘 이상의 메소드를 호출하지 않습니다. 그러나 Start 메소드가 실패할 경우 RGM은 자원이 한 번도 시작되지 않았더라도 자원에 대한 Stop 메소드를 호출할 수 있습니다. 마찬가지로 자원 데몬이 저절로 소멸된 경우에도 RGM은 이 자원 데몬에 대해 Stop 메소드를 실행할 수 있습니다. 동일한 시나리오가 Monitor_startMonitor_stop 메소드에 적용됩니다.

이러한 이유로 StopMonitor_stop 메소드에 멱등원을 작성해야 합니다. 동일한 인자를 가진 동일한 자원에 대해 Stop 또는 Monitor_stop을 반복해서 호출할 경우 단일 호출과 동일한 결과가 만들어집니다.

멱등원에 함축된 한 가지 의미는 자원 또는 모니터가 이미 중지되고 아무런 작업을 수행하지 않더라도 StopMonitor_stop에서 0(성공)을 반환해야 한다는 것입니다.


주 –

Init, Fini, BootUpdate 메소드도 멱등원이어야 합니다. Start 메소드는 멱등원일 필요가 없습니다.