Allocate(CPI-C)
현재 대화 특성을 사용하여 파트너 프로그램과의 대화를 할당하기 위해 호출 프로그램에서 할당 호출(함수 이름 cmallc)을 실행합니다. CPI-C는 LU(로컬 논리 단위)와 파트너 LU(로컬 논리 단위)가 아직 없는 경우 세션을 할당할 수도 있습니다.
구문
CM_ENTRY Allocate(
unsigned char FAR *conversation_ID,
CM_INT32 FAR *return_code
);
매개 변수
conversation_ID
제공된 매개 변수입니다. 대화 식별자를 지정합니다. 이 매개 변수의 값은 Initialize_Conversation 반환되었습니다.
return_code
이 호출에서 반환된 코드입니다. 유효한 반환 코드는 이 항목의 뒷부분에 나와 있습니다.
반환 코드
CM_OK
기본 반환 코드; 호출이 성공적으로 실행되었습니다.
CM_OPERATION_NOT_ACCEPTED
기본 반환 코드; 이 값은 이 대화에 대한 이전 작업이 불완전하다는 것을 나타냅니다.
CM_OPERATION_INCOMPLETE
기본 반환 코드; 비 차단 작업이 대화에서 시작되었지만 완료되지 않았습니다. 프로그램은 작업이 완료되기를 기다리거나 Cancel_Conversation 작업 및 대화를 취소하는 Wait_For_Conversation 실행할 수 있습니다.
CM_PARAMETER_ERROR
기본 반환 코드; 다음 중 하나가 발생했습니다.
사이드 정보에서 파생되거나 Set_Mode_Name 설정된 모드 이름이 잘못되었습니다.
모드 이름은 SNA TP(서비스 트랜잭션 프로그램)에서 사용됩니다. 호출 프로그램에는 이 모드 이름을 사용할 권한이 없습니다. 예를 들어 SNASVCMG가 있습니다.
사이드 정보에서 파생된 파트너 프로그램은 SNA 서비스 TP입니다. 로컬 프로그램에는 SNA 서비스 TP에 대화를 할당하는 데 필요한 권한이 없습니다.
파트너 프로그램은 기본 대화에 참여하는 서비스 TP이지만 대화는 CM_MAPPED_CONVERSATION 설정됩니다.
사이드 정보에서 파생되거나 Set_Partner_LU_Name 설정한 파트너 LU 이름이 잘못되었습니다.
CM_PROGRAM_PARAMETER_CHECK
기본 반환 코드; conversation_ID 지정한 값이 잘못되었거나 변수의 주소가 잘못되었습니다.CM_PROGRAM_STATE_CHECK
기본 반환 코드; 대화가 INITIALIZE 상태가 아닙니다.CM_PRODUCT_SPECIFIC_ERROR
기본 반환 코드; 제품별 오류가 발생하여 제품 오류 로그에 기록되었습니다.CM_UNSUCCESSFUL
기본 반환 코드; 대화 반환 제어 특성이 CM_IMMEDIATE 설정되었으며 로컬 LU에 사용 가능한 경합 승자 세션이 없습니다.대화 반환 제어 형식이 CM_WHEN_SESSION_ALLOCATED 설정된 경우 다음 반환 코드를 생성할 수 있습니다.
CM_ALLOCATE_FAILURE_NO_RETRY
기본 반환 코드; 구성 오류 또는 세션 프로토콜 오류와 같은 영구적인 조건으로 인해 대화를 할당할 수 없습니다. 오류를 확인하려면 시스템 관리자가 오류 로그 파일을 검사해야 합니다. 오류가 수정될 때까지 할당을 다시 시도하지 마세요.CM_ALLOCATE_FAILURE_RETRY
기본 반환 코드; 링크 오류와 같은 임시 조건으로 인해 대화를 할당할 수 없습니다. 오류의 원인은 시스템 오류 로그에 기록됩니다. 할당을 다시 시도하세요.상태 변경
할당이 실행될 때 대화는 INITIALIZE 상태여야 합니다.
다음 표에 요약된 상태 변경 내용은 return_code 매개 변수의 값을 기반으로 합니다.
return_code | 새 상태 |
---|---|
CM_OK | SEND |
CM_ALLOCATE_FAILURE_NO_RETRY | RESET |
CM_ALLOCATE_FAILURE_RETRY | RESET |
나머지 | 변경 내용 없음 |
설명
할당된 대화 유형은 매핑 또는 기본 대화 유형 특성을 기반으로 합니다.
이 호출에 의해 대화가 할당된 경우 다음 대화 특성을 변경할 수 없습니다.
대화 유형
모드 이름
파트너 LU 이름
파트너 프로그램 이름
반환 컨트롤
동기화 수준
대화 보안
사용자 ID
암호
할당 요청을 즉시 보내려면 호출 프로그램이 할당 직후 플러시 또는 확인을 실행할 수 있습니다. 그렇지 않으면 할당 요청은 버퍼가 가득 찼을 때까지 로컬 RU 송신 버퍼의 다른 데이터와 함께 누적됩니다.
할당 후 확인을 실행하면 호출 프로그램에서 할당이 성공했는지 여부를 즉시 확인할 수 있습니다(대화 동기화 수준이 CM_CONFIRM 설정된 경우).
파트너 LU가 할당에 의해 생성된 할당 요청을 거부하는 경우 오류는 후속 호출에서 호출 프로그램에 반환됩니다.