3
- 一個HornetQ的-2.2.14-最終獨立服務器
- 將消息發送客戶端應用程序C1到隊列,其從隊列甲 消耗消息的
- 客戶端應用程序C2
C1使用JmsTemplate的用於CLIENT_ACKNOWLEDGE模式發送消息:
<bean name="jmsTemplate" class="org.springframework.jms.core.JmsTemplate">
<property name="connectionFactory" ref="connectionFactory" />
<property name="sessionAcknowledgeModeName" value="CLIENT_ACKNOWLEDGE" />
<property name="sessionTransacted" value="true" />
</bean>
個
手動所以C2應確認消息:
@Override
@Transactional
public void onMessage(Message message)
{
try
{
messageHandlerService.handleReceivedMessage(message);
message.acknowledge();
}
catch (DeserializeXmlException e)
{
// TODO log
e.printStackTrace();
}
catch (InvalidMessageException e)
{
//TODO log
e.printStackTrace();
}
catch (JMSException e)
{
//TODO log
e.printStackTrace();
}
}
我的問題:
- 會發生的消息是什麼,當客戶端C2收到消息,但崩潰之前承認呢?
- 是否有超時機制?如果是,什麼是確認超時默認值?我如何修改它?
確認超時情況如何?我可以改變它(從hornetq或客戶端)? – united 2013-03-06 14:53:35
如果服務器在確認到達服務器之前崩潰,我該怎麼辦? (「message.acnknowledge()」會引發確認異常嗎?) – united 2013-03-06 14:56:07
我編輯了我的問題 – 2013-03-06 16:43:50