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

클라이언트와 서버 간에 SC_CALLBACK_REG 메시지가 전달되는 방법

클라이언트는 서버의 IP 주소와 포트 번호에 대한 TCP 연결을 열어 등록을 시작합니다. TCP 연결이 설정되고 쓰기가 가능해지면 클라이언트는 해당 등록 메시지를 보내야 합니다. 등록 메시지는 메시지 앞뒤에 추가 바이트를 포함하지 않아야 하며 서식이 올바로 지정된 단일 SC_CALLBACK_REG 메시지여야 합니다.

모든 바이트가 스트림에 기록되고 나면 클라이언트는 서버로부터 응답을 받기 위해 연결을 열어 두어야 합니다. 클라이언트가 메시지의 서식을 올바로 지정하지 않을 경우 서버는 클라이언트를 등록하지 않으며 오류 응답을 클라이언트에게 보냅니다. 그러나 서버가 응답을 보내기 전에 클라이언트가 소켓 연결을 닫을 경우 서버는 정상적으로 클라이언트를 등록합니다.

클라이언트는 언제든지 서버에 연결할 수 있습니다. 클라이언트는 서버에 연결할 때마다 SC_CALLBACK_REG 메시지를 보내야 합니다. 잘못되었거나, 문제가 있거나, 유효하지 않은 메시지가 전달되면 서버는 클라이언트에게 오류 응답을 보냅니다.

클라이언트는 ADD_CLIENT 메시지를 보내기 전까지 ADD_EVENTS, REMOVE_EVENTS 또는 REMOVE_CLIENT 메시지를 보낼 수 없습니다. 클라이언트는 ADD_CLIENT 메시지를 보내기 전까지 REMOVE_CLIENT 메시지를 보낼 수 없습니다.

클라이언트가 이미 등록되어 있는 상태에서 ADD_CLIENT 메시지가 전달될 경우 서버는 이 메시지를 허용할 수 있습니다. 이 경우 서버는 이전 클라이언트 등록을 두 번째 ADD_CLIENT 메시지에 지정된 새 클라이언트 등록으로 자동으로 대체합니다.

대부분의 경우 클라이언트는 시작될 때 ADD_CLIENT 메시지를 보냄으로써 서버에 한 차례 등록합니다. 또한 클라이언트는 REMOVE_CLIENT 메시지를 서버로 보내 등록을 한 번 취소합니다. 그러나 CRNP는 자신의 이벤트 유형 목록을 동적으로 수정해야 하는 클라이언트를 위한 더 많은 유연성을 제공합니다.

SC_CALLBACK_REG 메시지의 내용

ADD_CLIENT, REMOVE_CLIENT, ADD_EVENTSREMOVE_EVENTS 메시지는 이벤트 목록을 포함합니다. 다음 표에는 CRNP에서 허용하는 이벤트 유형과 함께 필수 이름 및 값 쌍이 설명되어 있습니다.

클라이언트가 다음 작업 중 하나를 수행하면 서버는 이러한 메시지를 자동으로 무시합니다.

클래스 및 하위 클래스 

이름 및 값 쌍 

설명 

EC_Cluster

ESC_cluster_membership

필수: 없음 

선택 사항: 없음 

모든 클러스터 구성원 변경 이벤트(노드 상실 또는 결합)를 등록합니다. 

EC_Cluster

ESC_cluster_rg_state

다음과 같은 필수 항목 하나: 

rg_name

값 유형: 문자열 

선택 사항: 없음 

자원 그룹 name에 대한 모든 상태 변경 이벤트를 등록합니다.

EC_Cluster

ESC_cluster_r_state

다음과 같은 필수 항목 하나: 

r_name

값 유형: 문자열 

선택 사항: 없음 

자원 이름에 대한 모든 상태 변경 이벤트를 등록합니다.

EC_Cluster

없음 

필수: 없음 

선택 사항: 없음 

모든 Sun Cluster 이벤트를 등록합니다.