Active MQ - 包含配置代理

时间:2012-11-06 15:30:23

标签: java spring activemq

<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>

有人可以告诉我如何合并这两种风格吗?感谢

1 个答案:

答案 0 :(得分:0)

AMQ persistenceAdapter配置允许 AMQ Broker 将邮件持久保存到磁盘,而不是客户端。如果代理连接已终止,则客户端代码应捕获异常,将消息写入磁盘并提供以后重播它们的方法。

沿着这些方向,我通常使用Apache Camel的exception handlingfile组件来处理这些类型的场景......