현재 메시지를 보내고 받기 위해 Websphere MQ에 연결하는 독립 실행 형 Java 응용 프로그램에서 작업하고 있습니다.메시지 수신기의 JMS 연결 풀링
흐름은 비동기식 모드입니다. 우리는 MessageListener
클래스를 사용하여 대기열에서 메시지를 검색 할 준비가되면이를 검색합니다. 청취자와 소비자를 초기화하는 코드는 다음과 같다 :
if(connection == null)
connection = getJmsConnection();
try {
session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
if (isTopic) {
destination = session.createTopic(destinationName);
} else {
destination = session.createQueue(destinationName);
}
consumer = session.createConsumer(destination);
consumer.setMessageListener(listener);
} catch (JMSException e) {
e.printStackTrace();
}
getJmsConnection()
방법은 풀에서 연결을 반환합니다, 아파치 코 몬즈 풀 라이브러리를 사용하여 구현.
내 질문은 프로그램에서 실행중인 동안 연결이 활성 상태이고 해당 수신기에 연결되어 있는지 여부입니다. 또는 연결이 간헐적으로 사용되며 다른 프로세스에서 재사용 할 수 있습니까? 우리의 생각은 풀에서 연결을 재사용하기 위해 보내고받는 프로세스를 갖는 것이지만, 나는 그들에게 할당 된 연결을 MessageListener
이 처리하는 방법을 모르겠습니다.
감사합니다.
답장을 보내 주셔서 감사합니다. 나는 세션 풀링이 어떻게 행해지는지 잘 모르겠다. 이것에 관해 더 많은 것을 찾으려고 노력할 것이다. – ipohfly
세션 풀링은 연결 풀링과 매우 유사한 방식으로 수행됩니다. 요점은 한 번에 오직 하나의 쓰레드 만이 세션을 사용할 수 있도록하는 것입니다. – Calanais
그건 우리가 2 개의 풀을 가질 것을 의미할까요? 하나는 연결 용이고 다른 하나는 세션 용입니다. – ipohfly