응용 프로그램이 제어 된 유지 관리 모드 인 동안 모든 소비자/메시지 수신자를 편리하게 일시 중지하는 방법을 알아 내려고하고 있습니다. 응용 프로그램이 ActiveMQ 5.13.3 클라이언트 라이브러리를 사용 중입니다.ActiveMQ : 연결 풀링을 사용할 때 소비자 일시 중지/다시 시작
얼마전 한 ActiveMQConnectionFactory
에서 PooledConnectionFactory
으로 전환했습니다. 그것은과 같이 설치되고 있습니다 :
ActiveMQConnectionFactory amcf = new ActiveMQConnectionFactory(config.getMessageBrokerUrl());
amcf.setTrustedPackages(Arrays.asList(new String[] {
"some.package.or.other",
"java.lang",
"java.util"
}));
connectionFactory = new PooledConnectionFactory(amcf);
connectionFactory.setCreateConnectionOnStartup(true);
소비자와 생산자가 풀에 반환, 그들은이 완료 될 때 "를 닫습니다"(가져 오기 =) 연결 풀에서 연결을 "만들기". 분명히 MessageListeners의 경우 시작시 한 번 획득되어 응용 프로그램 종료시 반환됩니다.
ActiveMQConnection.stop()
수신 메시지의 연결 전달을 일시적으로 중지합니다. 내가 원하는 것만 큼 완벽하게, 수영장에만 분명히 많은 연결이 포함되어 있습니다.
어떻게 일시 중지 하시겠습니까? 전체 ActiveMQ 연결 풀 연결?
감사합니다. 대기열을 일시 중지하는 것은 나에게 해결책이 아니며, 다른 클라이언트는 여전히 그 위에 통신해야합니다. 유스 케이스는 클러스터의 개별 노드의 종료 제어입니다. 연결보다는 messageListener를 멈추는 방법을 살펴 보겠습니다. – Hank