Remote panel에 "Server XXX.XXX.XXX.XXX has disconnected client because client could not keep up with server" 메세지가 출력된다.



주요한 소프트웨어:
주요한 소프트웨어 버전: 7.1
문제가 해결된 소프트웨어 버전:
부차적인 소프트웨어: N/A

문제점: 웹을 통해 떨어진 곳에서 저의 VI의 프론트 패널을 보려고 했는데 어느순간 저의 프론트 패널의 박스안에 "Server XXX.XXX.XXX.XXX has disconnected client because client could not keep up with server"라는 메세지가 출력되었습니다. 이 메세지의 원인과 해결방법이 무엇입니까?

솔루션: 이문제의 주요 원인으로는 멀리떨어진 곳에서 VI를 보는 클라이언트가 떨어진 패널서버에서 보내지는 많은 데이타와 연결을 유지할수 없기 때문입니다.

먼저 간단한 VI예제를 가지고 떨어진 패널서버가 동작하는지 확인해 보십시요
저희는 먼저 Help≫Find Examples≫Industry Applications≫Process Control에 있는 Tank Simulation.vi 예제를 권해드립니다.
만약 이 예제가 작동한다면, 이 문제는 일반적으로 많은 property node를 사용했기 때문이다. 때때로 적게 사용하더라도 발생하기도 한다.(예, 프로퍼티를 폴링할때)

만약 클라이언트가 VI를 컨트롤 한다면 프로퍼티 노드를 포함한 임의의 루프의 속도는 클라이언트의 메세지를 주고 받는 시간에 의해서 제한된다. 이것은 어떤 VI에 대한 성능문제 자체로 나타낼수 있고, VI가 클라이언트 동작에 대해 느리게 응답하는 것으로 볼수도 있습니다.

만약 클라이언트가 VI를 드물게 보게된다면, 서버는 여전히 메세지를 보내지만, 클라이언트의 결과들에 대해선 신경을 쓰지 않을 것입니다. 따라서, 어떤 메세지의 주고 받는 시간이 필요 없기 때문에 서버 VI의 다이어그램은 가능한 빠른속도록 실행할수 있습니다. 그러나 만약 클라이언트가 프로퍼티 노드의 메세지를 충분히 빠르게 실행하지 못하면, 서버의 메세지 저장공간의 계속 채워지게 될 것입니다. LabVIEW는 특정한 메모리공간보다 더 크게 클라이언트의 메세지의 용량이 늘어나면 서버가 클라이언트와의 연결을 끊음으로서
Out of memory가 발생하지 않도록 스스로를 하게 합니다. 그 저장공간의 디폴트 값은 500개 메세지입니다.이 메세지 저장공간의 크기는 LabVIEW.ini를 설정함으로서 바꿀수가 있습니다. 그리고/혹은 만약 실행가능한 패널 서버를 구동한다면 고객님의 실행가능한 INI화일과 같은 설정으로 설정해 줌으로서 바꿀수가 있습니다.

이 INI 설정은 RemotePanel.MaxMsgBacklog 이고 그 예는 다음과 같습니다.

RemotePanel.MaxMsgBacklog = 1000

추가적으로 서버VI의 성능을 향상시키고 클라이언트와 서버간의 주고받는 정보의 양을 줄기기 위해서 프로그램을 최적화 시킬것을 권해드립니다. 다음에 언급될 내용은 처리되야만하는 정보를 많은 정보를 줄이는 방법입니다.
  1. Sub VI와 탭 컨트롤을 사용하여 사용자가 사용하는 부분만 출력시키십시요. 이 방법은 사용자가 볼때 업데이트 되어야 하는 데이터를 감소시키는 방법입니다.
  2. 프로퍼티 노드를 포함하는 루프의 지연시간을 증가시키십시요. 이것은 노드가 실행되는 수를 줄임으로서 많은 메세지 트레픽을 줄이게 됩니다.
  3. 프런트 패널의 실행되는 VI에 대해 지연함수를 사용하십시요. 이것은 VI와 실제 사용자의 대화가 이루어질때까지 값을 폴링하고 프로퍼티 노드를 업데이트하는 요구를 줄여주는 것입니다.



관련 링크:

첨부:





리포트 날짜: 05/16/2002
마지막 업데이트: 03/07/2005
문서 번호: 2LF8UU2L