경우에 따라 클라이언트가 예기치 않게 중지되고 리소스를 정리할 기회가 없습니다. 이 경우 리소스를 잘못된 상태로 두고 브로커가 메모리 부족 또는 기타 시스템 리소스가 부족해질 수 있습니다. AMQ Broker가 비활성 서버 측 리소스를 정리하기 전에 대기하는 기간을 구성할 수 있습니다.
브로커는 클라이언트 연결이 가비지 컬렉션 시 제대로 종료되지 않았음을 감지합니다. 그런 다음 연결이 닫히고 아래 메시지와 유사한 메시지가 로그에 기록됩니다. 로그는 클라이언트 세션이 인스턴스화된 정확한 코드 행을 캡처합니다. 이를 통해 오류를 식별하고 수정할 수 있습니다.
[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) //
[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) //
Copy to ClipboardCopied!Toggle word wrapToggle overflow
클라이언트와 서버 간의 네트워크 연결이 실패하고 클라이언트가 다시 연결할 수 있도록 온라인 상태가 될 수 있으므로 AMQ Broker는 비활성 서버 측 리소스를 정리할 때까지 기다립니다. 이 대기 기간을 라이브(TTL)라고 합니다. 네트워크 기반 연결의 기본 TTL은 60000 밀리초(1분)입니다. in-VM 연결의 기본 TTL은 -1 이며, 이는 브로커가 브로커 측의 연결을 시간 초과하지 않음을 의미합니다.