이 섹션에서는 로컬 노드에서 애플리케이션으로의 아웃바운드 데이터 흐름에 대해 설명합니다. 설명된 프로토콜의 전체 구조는 SSCP(시스템 서비스 제어 지점) 및 PLU(기본 논리 단위) 연결에 적용되지만 특정 기능(예: 지연된 요청 모드의 사용)은 PLU 연결에만 적용됩니다.
로컬 노드는 다음과 같이 데이터가 이동하는 SNA 세션에 따라 호스트에서 시작된 데이터를 다른 연결의 애플리케이션에 표시합니다.
호스트 SSCP에서 시작되어 Host Integration Server LU(논리적 단위)로 전달되는 FMD NS(함수 관리 데이터 네트워크 서비스)(세션 서비스) 데이터 및 FMD(함수 관리 데이터)는 SSCP 연결에서 애플리케이션으로 전송됩니다.
호스트 PLU에서 시작되고 SNA 서버 LU로 전달되는 FMD 데이터는 PLU 연결에서 애플리케이션으로 전송됩니다.
모든 연결에서 FMD 요청만 Data 메시지(message-type = DATAFMI)로 애플리케이션에 표시됩니다. DFC 및 세션 제어 요청은 Status-Control 메시지를 생성하는 데 사용됩니다. 자세한 내용은 Status-Control 메시지를 참조하세요.
로컬 노드는 애플리케이션으로 Data 메시지를 보내기 전에 요청의 RH(응답 헤더) 표시기에서 요구하는 데이터 흐름 제어 상태 변경을 수행합니다.
SNA 요청 TH(전송 헤더) 및 RH 표시기는 애플리케이션에서 아웃바운드 Data 메시지에 사용할 수 없습니다. 대신 로컬 노드는 RH 표시기의 하위 집합 설정을 반영하는 애플리케이션 플래그를 Data 메시지 헤더에 제공하지만 더 모호한 체이닝 및 브래킷 사용 측면으로부터 애플리케이션을 보호하기 위해 로컬 노드에서 해석됩니다. 사용 가능한 플래그 및 로컬 노드가 아웃바운드 데이터에서 플래그를 사용하는 방법에 대한 설명은 애플리케이션 플래그를 참조하세요.
인바운드 데이터에서는 첫 번째 바이트가 표준 FMI(함수 관리 인터페이스)인 경우 RU[0]이고, FMI의 LUA(논리 단위 애플리케이션) 변형인 경우 TH[0]입니다.
로컬 노드에서 애플리케이션으로 이동하는 모든 Data 메시지에는 메시지 키가 포함됩니다. 로컬 노드는 애플리케이션에 대한 각 아웃바운드 데이터 흐름에 대해 고유한 메시지 키 시퀀스를 유지 관리합니다. 로컬 노드가 특정 연결의 애플리케이션에 Data 메시지를 보내면 아웃바운드 시퀀스의 다음 메시지 키를 메시지 헤더에 배치하고, 애플리케이션 플래그를 설정하고, 애플리케이션에 메시지를 보냅니다. 즉, 메시지 키는 로컬 노드와 애플리케이션 간의 특정 연결에서 Data 메시지를 고유하게 식별합니다. 로컬 노드는 아웃바운드 Status-Control Request 메시지에도 메시지 키를 배치합니다.
Host Integration Server에서 적용하는 승인 프로토콜에는 다음과 같이 SNA 세션에서 사용 중인 체인 응답 프로토콜 및 요청 모드가 반영됩니다.
아웃바운드 RQD 요청은 메시지 헤더에 ACKRQD가 설정된 Data 메시지를 생성합니다.
아웃바운드 RQE 요청은 ACKRQD를 설정하지 않고 Data 메시지를 생성합니다.
아웃바운드 RQN 요청은 ACKRQD를 설정하지 않고 Data 메시지를 생성합니다.
세션에서 기본 즉시 요청 모드를 사용하는 경우 ACKRQD가 설정된 Data 메시지는 추가 Data 메시지를 받기 전에 애플리케이션에서 승인해야 합니다.
세션에서 기본 지연된 요청 모드를 사용하는 경우 ACKRQD가 설정된 Data 메시지는 애플리케이션에서 즉시 승인하지 않아도 됩니다. Data 메시지는 계속 수신됩니다.
Host Integration Server는 모든 연결에 대한 아웃바운드 데이터 승인 프로토콜에 동일한 즉시 응답 모드를 적용합니다. 애플리케이션은 순서대로 승인을 보내야 합니다.
로컬 노드가 Data 메시지의 메시지 헤더에서 ACKRQD 필드를 애플리케이션으로 설정하면 이 Data 메시지에 대한 승인이 필요함을 나타냅니다. 애플리케이션은 Data 메시지와 동일한 메시지 키 및 시퀀스 번호 필드가 포함된 Status-Acknowledge 메시지를 동일한 연결의 로컬 노드로 전송하여 아웃바운드 Data 메시지를 승인합니다.
Status-Acknowledge(Ack)를 받으면 로컬 노드는 메시지 키를 처리 중인 아웃바운드 메시지와 상호 연결하고 적절한 SNA 요청에 대해 SNA 긍정 응답을 생성합니다.
애플리케이션은 Status-Acknowledge(Nack-1) 메시지를 부정 승인으로 사용해야 합니다. Status-Acknowledge(Nack-1) 를 받으면 로컬 노드는 메시지를 처리 중인 아웃바운드 메시지와 상호 연결하고 적절한 SNA 요청에 대해 SNA 부정 응답 및 센스 코드를 생성합니다. 애플리케이션은 Status-Acknowledge(Nack-1) 메시지의 일부로 부정 응답과 함께 제공되어야 하는 센스 데이터를 제공하며 여기에는 Data 메시지와 동일한 메시지 키, 애플리케이션 플래그, 시퀀스 번호 필드가 포함되어야 합니다.
긴급 흐름 요청으로 생성되는 Status-Control 메시지는 언제든지 보낼 수 있으며 일반 흐름 아웃바운드 Data 메시지에 대한 긍정 또는 부정 승인 보내기에 영향을 주지 않습니다. 아웃바운드 Data 메시지와 일치하는 Status-Acknowledge 메시지 간에 발생할 수 있다는 사실은 순수한 우연의 일치입니다. SNA 요청에 해당하는 Status-Control 메시지에 대한 자세한 내용은 Status-Control 메시지를 참조하세요.
호스트에서 일반 흐름 요청 형식으로 오류가 검색되거나 요청이 세션 상태에 적합하지 않은 경우 로컬 노드는 다음과 같은 특성이 있는 애플리케이션에 대해 오류 Data 메시지를 생성합니다.
SDI 및 ECI 애플리케이션 플래그가 설정되어 있습니다.
오류와 연결된 센스 코드가 Data 메시지의 처음 4바이트를 사용합니다. 자세한 내용은 Status-Control 메시지를 참조하세요.
ACKRQD가 설정되어 있습니다.
애플리케이션은 Status-Acknowledge(Ack)을 반환해야 하며, 로컬 노드는 검색된 오류에 적합한 센스 코드를 전달하는 부정 응답을 생성합니다. 이 메커니즘은 다음을 수행합니다.
애플리케이션에 검색된 오류를 알립니다.
로컬 노드가 이 Data 메시지에 대한 부정 응답을 보내기 전에 애플리케이션이 이전에 받은 데이터에 응답할 수 있습니다.
애플리케이션이 일련의 RQE 체인을 받는 세션에서 로컬 노드는 각 체인에 대한 상관 관계 정보를 유지합니다(애플리케이션이 모든 체인에 대해 부정 응답을 보내려는 경우). 로컬 노드에 상관 관계 테이블 항목이 부족할 경우 더 많은 항목을 할당하려고 시도하고 실패할 경우 세션을 강제로 종료합니다. 이를 방지하려면 애플리케이션은 RQE 데이터에 대해 Status-Acknowledge(Ack) 메시지를 제공하여 이 경우에 거부하지 않도록 해야 합니다. 5개의 연속 RQE 체인 이후의 응답이 충분해야 합니다. 이러한 메시지를 참조용 승인이라고 하며 호스트에 대한 응답을 제공하지는 않지만 내부 상관 관계 데이터를 해제합니다.
다음 6개의 그림에서는 로컬 노드와 애플리케이션 간에 적용된 데이터 승인 프로토콜을 보여 주고 애플리케이션이 긍정 및 부정 Status-Acknowledg 메시지를 생성하는 효과를 보여 줍니다.
그림에서는 다음을 보여 줍니다.
SNA 요청/응답의 관련 RH 플래그.
SNA 요청/응답의 시퀀스 번호.
SNA 요청/응답 및 Status-Acknowledge 메시지의 모든 센스 데이터(“SENSE=...”로 표시됨).
Data 메시지의 ACKRQD 필드.
Data 메시지의 메시지 키 필드.
편의상 모든 메시지가 동일한 PLU 세션에서 이동하는 FM 데이터인 것으로 가정합니다.
다음 그림에서 애플리케이션은 명확한 응답 RU에 해당하는 Data 메시지를 수락합니다.
명확한 응답 RU에 해당하는 Data 메시지를 보내는 애플리케이션다음 그림에서 애플리케이션은 여러 RU 명확한 응답 체인에 해당하는 Data 메시지를 수락합니다.
여러 RU 명확한 응답 체인에 해당하는 Data 메시지를 수락하는 애플리케이션다음 그림에서 애플리케이션은 명확한 응답 체인에 해당하는 Data 메시지를 거부합니다.
명확한 응답 체인에 해당하는 Data 메시지를 거부하는 애플리케이션다음 그림에서 애플리케이션은 여러 RU 명확한 응답 체인에 해당하는 Data 메시지를 거부합니다.
여러 RU 명확한 응답 체인에 해당하는 Data 메시지를 거부하는 애플리케이션다음 그림에서 로컬 노드는 즉시 응답 모드를 적용합니다. 응답은 순서대로 전송되어야 합니다. 애플리케이션은 두 번째 예외 응답 체인을 거부하고 세 번째 예외 응답 체인의 수락을 암시하는 명확한 응답 체인을 수락합니다.
즉시 응답 모드를 적용하는 로컬 노드다음 그림에서 로컬 노드는 애플리케이션을 대상으로 하는 데이터에서 체이닝 오류(EC가 아닌 RQD)를 검색합니다. (이 예제에서는 수신 검사 0x4007 적용해야 합니다. 자세한 내용은 SSCP 연결 열기를 참조하세요.)
애플리케이션을 대상으로 하는 데이터에서 체이닝 오류를 검색하는 로컬 노드