3.5.3. 연결의 TTL(Time to Live) 설정

STOMP 클라이언트는 연결을 종료하기 전에 DISCONNECT 프레임을 보내야 합니다. 이를 통해 브로커는 세션 및 소비자와 같은 서버 측 리소스를 닫을 수 있습니다. 그러나 STOMP 클라이언트가 DISCONNECT 프레임을 전송하지 않고 종료하거나 실패하는 경우 브로커는 클라이언트가 여전히 활성화되어 있는지 여부를 즉시 알 수 없습니다. 따라서 STOMP 연결은 1분의 "Time to Live"(TTL)이 되도록 구성됩니다. 브로커는 STOMP 클라이언트에 대한 연결을 1분 이상 유휴 상태인 경우 해당 클라이언트에 대한 연결을 중지합니다.

절차

  1. 구성 파일 BROKER_INSTANCE_DIR/etc/broker.xml을 엽니다.
  2. 다음 예와 같이 STOMP 연결에 사용되는 수락 자의 URI에 connectionTTL 매개변수를 추가합니다.
<acceptors>
  <acceptor name="stomp-acceptor">tcp://localhost:61613?protocols=STOMP;connectionTTL=20000</acceptor>
  ...
</acceptors>

이전 예에서 stomp-acceptor 를 사용하는 모든 STOMP 연결은 TTL을 20초로 설정합니다.

참고

STOMP 프로토콜의 버전 1.0에는 하트비트 프레임이 포함되어 있지 않습니다. 따라서 데이터가 connection-ttl 내에서 전송되는지 확인해야 합니다. 그렇지 않으면 브로커가 클라이언트가 종료된 것으로 가정하고 서버 측 리소스를 정리합니다. 버전 1.1을 사용하면 STOMP 연결의 라이프 사이클을 유지하기 위해 심장 박동을 사용할 수 있습니다.

브로커의 기본 시간 (TTL)을 덮어 씁니다.

앞에서 언급했듯이 STOMP 연결의 기본 TTL은 1분입니다. 브로커 구성에 connection-ttl-override 특성을 추가하여 이 값을 재정의할 수 있습니다.

절차

  1. 구성 파일 BROKER_INSTANCE_DIR/etc/broker.xml을 엽니다.
  2. connection-ttl-override 특성을 추가하고 새 기본값에 대한 값(밀리초)을 제공합니다. 아래처럼 &lt ;core&gt; 스탠자에 속합니다.
<configuration ...>
  ...
  <core ...>
    ...
    <connection-ttl-override>30000</connection-ttl-override>
    ...
  </core>
<configuration>

위 예제에서 STOMP 연결의 기본 TTL(Time to Live)은 30000밀리초로 설정됩니다.