10 개의 연결로 MQ에 연결하는 Java 클라이언트가 있습니다. Java 클라이언트가 실행되는 동안 열려 있습니다. 각 스레드마다 메시지를 만들고 세션을 만들고 메시지를 보내고 세션을 닫습니다. 우리는 Spring CachingConnectionFactory를 사용하고 있으며 sessionCacheSize는 100입니다. 우리는 MQ 엔지니어링 팀에서 큐 관리자의 최대 연결 수가 500이며 우리가이를 초과하고 있다는 말을 들었습니다. QM.INI 파일이 있습니다MQ 최대 연결 문제
maxChannels=500
maxActiveChannels=256
maxHandles=256
나는 MQ 탐색기에서 관찰 한 내용을 큐에 오픈 출력 카운트가 우리가 비록,이 큐에서 균형이 각 (10)의로드 그러나 경우, 10에서 정적으로 유지한다는 것입니다 우리는 여전히 10 개의 연결 만 가지고 있습니다. 그래서 내가 알고 싶은 것은 MQ 연결과 세션이 MQ 용어에서 동일하다는 것입니다.
연결이 활성 채널이고 세션이 핸들이라고 생각 했으므로 우리가 열고 닫은 세션의 양이 수백 또는 수천 개로 늘어날 때 우리가 초과 할 가능성이있는 핸들이었습니다. 반면 10 개의 연결 만 있습니다. 이것에 반대하지만, IBM의 Technote "Explanation of connection pool and session pool settings for JMS connection factories"에서 발췌 한 스 니펫은 최대 채널이 최대 세션보다 커야 함을 나타내지 만로드에 따라 다르다는 것을 결코 알지 못합니다 (sessionCacheSize보다 커야 만). .
각 세션은 큐 관리자에 대한 TCP/IP 연결을 나타냅니다. 여기에 언급 된 설정을 사용하면 최대 100 개의 TCP/IP 연결이 가능합니다. WebSphere MQ를 사용하는 경우 qm.ini 파일에있는 큐 관리자의 MaxChannels 설정 을 으로 조정하여 연결하는 각 JMS 연결 팩토리에서 최대 세션 수의 합계보다 큰 값으로 조정해야합니다 매니저 대기열로 이동합니다.
MQ를 구성하는 최선의 방법에 대한 도움을 주시면 감사하겠습니다.
안녕하세요, 응답 해 주셔서 감사합니다. 실례지만 최대 대화는 qm.ini 파일의 최대 채널 또는 최대 활성 채널과 관련이 있습니까? 초과하는 것으로 보이는 것은 이러한 속성입니다. 대화 제한이 위반되거나 모든 세션에 대해 발생하는 경우에만 세션 생성을 위해 TCP 연결이 생성됩니까? 또한 CachingConnectionFactory 인스턴스 하나를 가지고 있으며 모든 연결은이 연결에서 만들어지며 연결 당 세션 캐시 크기는 (모든 연결에서 100과 반대되는)? – Bazza
최대 채널 수는 큐 관리자에서 정의 할 수있는 채널 수를 의미합니다. 최대 활성 채널은 큐 관리자에서 활성 상태 인 채널 인스턴스의 수를 의미합니다.최대 대화는 채널 자체의 속성이며 하나의 채널 인스턴스에서 여러 논리 연결을 여러 개 포함 할 수있는 방법을 제어합니다. qm.ini 등록 정보는 큐 관리자와 동일하므로 응용 프로그램 만 연결하는 것 이상의 기능이있을 수 있습니다. MQ 관리자에게 채널에 몇 개의 채널 인스턴스가 사용되고 있는지 물어보아야합니다. – whitfiea
알겠습니다. 이 경우 모든 연결 (100 개의 연결에서 100) 또는 각 연결 (1000)간에 공유되는 단일 CachingConnectionFactory에 대한 sessionCacheSize가 있습니까? – Bazza