검색

9장. 손상된 연결 감지

download PDF

때때로 클라이언트는 예기치 않게 중지되고 리소스를 정리할 기회가 없습니다. 이 경우 리소스를 결함이 있는 상태로 두고 브로커가 메모리 또는 기타 시스템 리소스가 부족해질 수 있습니다. 브로커는 가비지 컬렉션 시 클라이언트 연결이 제대로 종료되지 않았음을 감지합니다. 연결이 닫히고 아래와 유사한 메시지가 로그에 기록됩니다. 로그는 클라이언트 세션이 인스턴스화된 정확한 코드 라인을 캡처합니다. 이를 통해 오류를 식별하고 수정할 수 있습니다.

[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. 연결 Time-To-Live

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

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

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

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

절차

  • 아래 예제와 같이 connection-ttl-override 구성 요소를 추가하고 Time-to-live에 대한 값을 제공하여 < 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
    사용 중인 연결을 점검하는 간격은 1000밀리초로 설정됩니다. 기본적으로 검사는 2000밀리초 마다 수행됩니다.
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.