다음을 통해 공유


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가 할당에 의해 생성된 할당 요청을 거부하는 경우 오류는 후속 호출에서 호출 프로그램에 반환됩니다.