0

我有一个配置为使用 Oracle 的 activemq jdbcPersistenceAdapter。主代理获得了锁,但是当我向队列发送消息时,我无法在数据库表中看到它们。我不希望以任何方式缓存消息,因为在没有更多生产者之前它们不会被消耗(长话短说)。

 <broker xmlns="http://activemq.apache.org/schema/core"  brokerName="primary" useJmx="true" useShutdownHook="false">

 <managementContext>
   <!-- use appserver provided context instead of creating one,
        for jboss use: -Djboss.platform.mbeanserver -->
   <managementContext createConnector="false"/>
 </managementContext>

<persistenceAdapter>
   <jdbcPersistenceAdapter dataSource="#oracle-ds" createTablesOnStartup="false" lockKeepAlivePeriod="30000"/>
 </persistenceAdapter>

<transportConnectors>
  <transportConnector uri="tcp://localhost:61616"/>
</transportConnectors>

 <!-- Spring JMS Producer Configuration -->
<bean id="jmsProducerTemplate" class="org.springframework.jms.core.JmsTemplate">
    <property name="connectionFactory" ref="connectionFactory"/>
    <property name="defaultDestination" ref="p3dPausedTransactionDestination"/>
    <property name="deliveryPersistent" value="true"/>
</bean>

<!-- Message Listener Container -->
<bean id="jmsContainer" class="org.springframework.jms.listener.DefaultMessageListenerContainer">
    <property name="connectionFactory" ref="connectionFactory"/>
    <property name="destination" ref="p3dPausedTransactionDestination"/>
    <property name="messageListener" ref="transactionMessageConsumer" />
    <property name="sessionTransacted" value="true"/>
    <property name="autoStartup" value="true"/>
    <property name="sessionAcknowledgeModeName" value="AUTO_ACKNOWLEDGE"/>
</bean>

<!-- JMS Factory -->
<beans profile="local, test, dev, dev2, sit, uat, tt, prod">
    <bean id="connectionFactory" class="org.springframework.jms.connection.SingleConnectionFactory">
        <property name="targetConnectionFactory">
            <bean class="org.springframework.jndi.JndiObjectFactoryBean">
                <property name="jndiName" value="java:jboss/activemq/p3dConnectionFactory"/>
                <property name="lookupOnStartup" value="true"/>
            </bean>
        </property>
    </bean>
</beans>
4

1 回答 1

0

添加第二个代理后,消息开始出现在数据库中。

于 2014-07-22T13:08:59.527 回答