9장. Dead Connections 탐지


경우에 따라 클라이언트는 예기치 않게 중지되고 리소스를 정리할 수 없습니다. 이 경우 리소스를 결함이 있는 상태로 유지하면 브로커가 메모리 또는 기타 시스템 리소스가 부족해질 수 있습니다. 브로커는 클라이언트의 연결이 가비지 수집 시 제대로 종료되지 않았음을 감지합니다. 그런 다음 연결이 닫히고 아래 것과 유사한 메시지가 로그에 기록됩니다. 로그는 클라이언트 세션이 인스턴스화된 정확한 코드 행을 캡처합니다.The log captures the exact line of code where the client session was instantiated. 이를 통해 오류를 식별하고 수정할 수 있습니다.

[Finalizer] 20:14:43,244 WARNING [org.apache.activemq.artemis.core.client.impl.DelegatingSession]  I'm closing a JMS Conection you left open. Please make sure you close all connections explicitly before let
ting them go out of scope!
[Finalizer] 20:14:43,244 WARNING [org.apache.activemq.artemis.core.client.impl.DelegatingSession]  The session you didn't close was created here:
java.lang.Exception
   at org.apache.activemq.artemis.core.client.impl.DelegatingSession.<init>(DelegatingSession.java:83)
   at org.acme.yourproject.YourClass (YourClass.java:666) 1
1
연결이 인스턴스화된 클라이언트 코드의 줄입니다.

9.1. 연결 시간-투-Live

클라이언트와 서버 간의 네트워크 연결이 실패하고 다시 온라인 상태가 되므로 클라이언트가 다시 연결할 수 있으므로 AMQ Broker는 비활성 서버 쪽 리소스를 정리하도록 기다립니다. 이 대기 기간을 TTL(Time-to-Live)이라고 합니다. 네트워크 기반 연결의 기본 TTL은 60000 밀리초(1분)입니다. VM 내 연결의 기본 TTL은 -1 이며, 이는 브로커가 브로커 측의 연결을 초과하지 않음을 의미합니다.

브로커에서 Time-To-Live 구성

클라이언트가 자체 연결 TTL을 지정하지 않으려면 브로커 측에서 글로벌 값을 설정할 수 있습니다. 브로커 구성에서 connection-ttl-override 요소를 지정하여 이 작업을 수행할 수 있습니다.

TTL 위반에 대한 연결을 확인하는 논리는 connection-ttl-check-interval 요소에 의해 결정된 대로 브로커에서 정기적으로 실행됩니다.

절차

  • 다음 예제와 같이 connection-ttl-override 구성 요소를 추가하고 TTL 값을 제공하여 < broker_instance_dir> /etc/broker.xml 을 편집합니다.

    <configuration>
     <core>
      ...
      <connection-ttl-override>30000</connection-ttl-override> 1
      <connection-ttl-check-interval>1000</connection-ttl-check-interval> 2
      ...
     </core>
    </configuration>
    1
    모든 연결의 글로벌 TTL은 30000밀리초로 설정됩니다. 기본값은 -1 이며, 이를 통해 클라이언트가 자체 TTL을 설정할 수 있습니다.
    2
    dead connections에 대한 검사 간격은 1000밀리초로 설정됩니다. 기본적으로 검사는 2000밀리초마다 수행됩니다.
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.