LUA 사용 시 SNA 고려 사항
이 섹션에서는 LUA(논리 단위 애플리케이션) 애플리케이션을 작성할 때 고려해야 하는 SNA 정보를 설명합니다.
BIND 검사
LU 세션을 초기화하는 동안 호스트는 LU 세션에 사용할 RU(요청/응답 단위) 크기와 같은 정보가 포함된 BIND 메시지를 LUA 애플리케이션에 보냅니다. Microsoft® Host Integration Server는 RUI_READ LUA 애플리케이션에 이 메시지를 반환합니다. LUA 애플리케이션은 BIND에 지정된 매개 변수가 적합한지 확인해야 합니다. 애플리케이션에는 다음과 같은 옵션이 있습니다.
BIND에 대한 확인 응답을 포함하는 RUI_WRITE 발급하여 BIND를 그대로 수락할 수 있습니다. 응답에 추가 BIND 데이터를 보낼 수 없습니다.
하나 이상의 BIND 매개 변수를 협상하려고 시도할 수 있습니다. BIND를 협상할 수 있는 경우에만 허용됩니다. 이를 위해 애플리케이션은 수정된 BIND를 데이터로 포함하는 RUI_WRITE 문제를 해결합니다.
적절한 SNA 센스 코드를 데이터로 사용하여 음수 응답을 포함하는 RUI_WRITE 발급하여 BIND를 거부할 수 있습니다.
BIND 매개 변수의 유효성을 검사하고 전송된 모든 메시지가 해당 매개 변수와 일치하는지 확인하는 것은 LUA 애플리케이션의 책임입니다. 그러나 다음 두 가지 제한이 적용됩니다.
Host Integration Server는 BIND에 지정된 크기보다 큰 RU 길이를 지정하는 RUI_WRITE 거부합니다.
Host Integration Server를 사용하려면 BIND가 보조 LU가 경합 승자이고 오류 복구가 경합 패자의 책임임을 지정해야 합니다.
참고
SLI의 경우 애플리케이션은 BIND 검사를 수행하는 경우 SLI_OPEN SLI_BIND_ROUTINE 사용하도록 지정해야 합니다.
예의 인정
호스트 통합 서버는 호스트에서 받은 요청의 레코드를 유지하여 애플리케이션에서 보낸 모든 응답과 적절한 요청의 상관 관계를 지정합니다. 애플리케이션이 응답을 보낼 때 호스트 통합 서버는 응답을 원래 요청의 데이터와 상호 연결한 다음 연결된 스토리지를 해제할 수 있습니다.
호스트가 예외 응답만 지정하는 경우(음수 응답을 보낼 수 있지만 양수 응답을 보내지 않아야 하는 경우) 호스트 통합 서버는 애플리케이션이 이후에도 부정적인 응답을 보낼 경우 요청의 레코드를 유지해야 합니다. 애플리케이션이 응답을 보내지 않으면 이 요청과 연결된 스토리지를 해제할 수 없습니다.
이 때문에 호스트 통합 서버를 사용하면 LUA 애플리케이션이 호스트의 예외 응답 전용 요청에 대해 긍정적인 응답을 실행할 수 있습니다. (이를 예의 승인이라고 합니다.) 응답은 호스트로 전송되지 않지만 LUA에서 요청과 연결된 스토리지를 지우는 데 사용됩니다.
참고
애플리케이션은 각 예외 응답 전용 요청에 대한 예의 승인을 보낼 필요가 없습니다. 효율성을 위해 애플리케이션은 덜 자주 응답할 수 있습니다. 노드는 사전 보류 중인 모든 요청에 대한 암시적 승인으로 예의 승인을 처리합니다.
다른 보조 반환 코드와 SNA 센스 코드 구분
센스 코드가 아닌 보조 반환 코드는 항상 처음 두 바이트에 0의 값을 포함합니다.
SNA 센스 코드는 항상 처음 두 바이트에 0이 아닌 값을 포함합니다. 첫 번째 바이트는 센스 코드 범주를 제공하고 두 번째 바이트는 해당 범주 내의 특정 센스 코드를 식별합니다. (세 번째 및 네 번째 바이트는 추가 정보를 포함하거나 0일 수 있습니다.)
SNA 센스 코드에 대한 정보
반환된 센스 코드에 대한 정보가 필요한 경우 다음을 참조하세요.
부정 응답 및 SNA 센스 코드
SNA 센스 코드는 다음 경우에 LUA 애플리케이션에 반환될 수 있습니다.
호스트가 LUA 애플리케이션의 요청에 부정적인 응답을 보내는 경우 부정적인 응답의 이유를 나타내는 SNA 센스 코드가 포함됩니다. 이는 후속 RUI_READ 애플리케이션에 보고되거나 다음 정보가 포함된 SLI_RECEIVE .
센스 코드 Description 기본 반환 코드 LUA_OK. 요청/응답 표시기, 응답 유형 표시기 및 감지 데이터 포함 표시기 모두 1로 설정되며, 센스 데이터를 포함하는 음수 응답을 나타냅니다. 반환된 데이터 SNA 센스 코드입니다. 호스트 통합 서버는 호스트에서 잘못된 데이터를 수신하면 일반적으로 호스트에 부정적인 응답을 보내고 잘못된 데이터를 LUA 애플리케이션에 전달하지 않습니다. 다음 정보를 사용하여 후속 RUI_READ, SLI_RECEIVE, RUI_BID 또는SLI_BID 애플리케이션에 보고됩니다.
센스 코드 Description 기본 반환 코드 LUA_NEGATIVE_RESPONSE. 보조 반환 코드 호스트로 전송된 SNA 센스 코드입니다. 경우에 따라 호스트 통합 서버는 호스트에서 제공하는 데이터가 잘못되었다는 것을 감지하지만 보낼 올바른 센스 코드를 확인할 수 없습니다. 이 경우 EXR(예외 요청)의 잘못된 데이터를 다음 정보와 함께 RUI_READ 또는 SLI_RECEIVE LUA 애플리케이션에 전달합니다.
센스 코드 Description 요청/응답 표시기 요청을 나타내는 0으로 설정합니다. 센스 데이터 포함 표시기 센스 데이터가 포함됨을 나타내는 1로 설정합니다. (이 표시기는 일반적으로 응답에만 사용됩니다.) 메시지 데이터 제안된 SNA 센스 코드입니다. 그러면 애플리케이션이 메시지에 부정적인 응답을 보내야 합니다. Host Integration Server에서 제안하는 센스 코드를 사용하거나 센스 코드를 변경할 수 있습니다.
Host Integration Server는 애플리케이션에 센스 코드를 보내 애플리케이션에서 제공한 데이터가 잘못되었음을 나타낼 수 있습니다. 다음 정보를 사용하여 RUI_WRITE 또는 SLI_SEND 애플리케이션에 보고됩니다.
센스 코드 Description 기본 반환 코드 LUA_UNSUCCESSFUL. 보조 반환 코드 SNA 센스 코드입니다. LUA 동사에서 보조 반환 코드로 반환될 수 있는 센스 코드는 WINLUA에 나열됩니다. H 헤더 파일입니다. 이 파일은 호스트 통합 서버 또는 SNA SDK를 참조하세요.
속도
속도는 LUA 인터페이스에서 처리됩니다. LUA 애플리케이션은 속도를 제어할 필요가 없으며 속도 표시기 플래그를 설정해서는 안 됩니다.
LUA 애플리케이션에서 호스트로 전송된 데이터(BIND에 의해 결정됨)에 속도를 사용하는 경우 RUI_WRITE 또는 SLI_SEND 완료하는 데 다소 시간이 걸릴 수 있습니다. LUA는 더 많은 데이터를 보내기 전에 호스트의 응답 속도를 기다려야 하기 때문입니다.
LUA 애플리케이션이 호스트 또는 호스트(예: 파일 전송 애플리케이션)에서 한 방향으로 대량의 데이터를 전송하는 경우 호스트 구성은 해당 방향으로 속도를 사용하도록 지정해야 합니다. 이렇게 하면 데이터를 수신하는 노드가 데이터로 넘쳐나지 않고 데이터 스토리지가 부족하지 않습니다.
체인의 끝으로 데이터 제거
호스트가 LUA 애플리케이션에 요청 단위 체인을 보낼 때 애플리케이션은 응답을 보내기 전에 체인의 마지막 RU가 수신될 때까지 기다리거나 체인의 마지막 RU가 아닌 RU에 부정적인 응답을 보낼 수 있습니다. 음수 응답이 중간 체인으로 전송되면 LUA는 이 체인에서 모든 후속 RU를 제거하고 애플리케이션에 보내지 않습니다.
LUA는 체인에서 마지막 RU를 수신하는 경우 RUI_READ 또는 RUI_BID 기본 반환 코드를 0개의 보조 반환 코드로 LUA_NEGATIVE_RESPONSE 설정하여 애플리케이션에 이를 나타냅니다.
호스트는 중간 체인에 있는 동안 CANCEL과 같은 메시지를 보내 체인을 종료할 수 있습니다. 이 경우 CANCEL 메시지는 RUI_READ 애플리케이션에 반환됩니다. LUA_NEGATIVE_RESPONSE 반환 코드는 사용되지 않습니다.
분할
RU의 분할은 LUA 인터페이스에 의해 처리됩니다. LUA는 항상 전체 RU를 애플리케이션에 전달하며 애플리케이션은 전체 RU를 LUA에 전달해야 합니다.