: 어떤 상황에서JMS, 특히 ActiveMQ를 사용할 때 JMSExceptions 처리? 다음 코드에서
Connection connection=getConnection();
try {
Session session=connection.createSession();
try {
Queue queue=session.createQueue("foobar");
MessageConsumer consumer=null;
try {
consumer = session.createConsumer(queue);
}
catch(JMSException e) {
// Under what circumstances does this happen?
}
try {
// ...
}
finally {
if(consumer != null) consumer.close();
}
}
finally {
session.close();
}
}
finally {
connection.close();
}
가 발생 JMSException
잡은된다? 문제가 발생하면 JMSException
을 처리하는 적절한 방법은 무엇입니까? JMS 및 ActiveMQ 관련 문서를 읽었으며이 점에 대한 지침을 제공하지 않습니다 (당연히 try
/catch
을 사용하는 것 이외에). 또한 인위적인 코드 예제를 용서하십시오! session
어떤 방법으로 "나쁜 사라"경우
는 예를 들어, JMSException
발생합니까, 그래서 똑바로 살아라는 consumer
및 session
를 해체하고 다시 시작하는거야? 아니면 connection
이 잘못되었다는 뜻인가요? 그래서 그 연결을 기반으로하는 응용 프로그램의 모든 것을 찢어서 다시 만들어야합니까? 또는 createConsumer()
에 대한 호출이 일시적으로 실패 할 수 있으며 동일한 세션으로 통화를 다시 시도 할 수 있습니까? 마찬가지로
,이 라인은 같은 것을 무시하는 JMSException
던질 것이다 때 Session
또는 Connection
폐쇄 :
Message message=consumer.receive();
producer.send(message);
내가
JMSException
의는 일반적으로 JMS에서 처리하는 방법을 이해하고 싶습니다
하지만 답변 특정 ActiveMQ는 괜찮습니다. 실제로 JMS는 스펙에 불과하기 때문에 모든 응답은 특정 구현에만 국한 될 수 있습니다.
멋진 답변. 내가 알 필요가있는 것. Tim 감사합니다! – sigpwned