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