<bean id="myTopic" class="org.apache.activemq.command.ActiveMQTopic">
<property name="physicalName" value="feed.topic" />
</bean>
<bean id="myConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
<property name="brokerURL" value="failover:tcp://localhost:61616" />
</bean>
<bean id="myJmsTemplate" class="org.springframework.jms.core.JmsTemplate">
<property name="connectionFactory" ref="myConnectionFactory" />
<property name="defaultDestination" ref="myTopic" />
</bean>
<bean id="sender" class="com.feed.publish.PublishMessages">
<property name="jmsTemplate" ref="myJmsTemplate" />
</bean>
我使用spring框架进行上述设置,允许我将消息发布到队列。但是,如果activemq实例在进程中间终止,我希望它写入磁盘/文件消息,直到可以重新建立连接。我找到了activemq网站的示例代码,但我不确定如何将其整合到我当前的设置中
<amq:broker useJmx="true" persistent="true" brokerName="localhost">
<amq:persistenceAdapter>
<amq:kahaPersistenceAdapter directory="activemq-data"
maxDataFileLength="33554432" />
</amq:persistenceAdapter>
<amq:transportConnectors>
<amq:transportConnector name="vm" uri="vm://localhost" />
</amq:transportConnectors>
</amq:broker>
有人可以告诉我如何合并这两种风格吗?感谢
答案 0 :(得分:0)
AMQ persistenceAdapter配置允许 AMQ Broker 将邮件持久保存到磁盘,而不是客户端。如果代理连接已终止,则客户端代码应捕获异常,将消息写入磁盘并提供以后重播它们的方法。
沿着这些方向,我通常使用Apache Camel的exception handling和file组件来处理这些类型的场景......