[
https://issues.apache.org/jira/browse/AMQ-6424?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17118121#comment-17118121
]
Rahul Deo commented on AMQ-6424:
--------------------------------
We have been seeing this issue consistently with version *5.14.1.*
This is our configuration file.
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://activemq.apache.org/schema/core
http://activemq.apache.org/schema/core/activemq-core.xsd"> <!-- Allows us to
use system properties as variables in this configuration file -->
<bean
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<value>file:${activemq.conf}/credentials.properties</value>
</property>
</bean>
<!-- Allows accessing the server log -->
<bean id="logQuery" class="io.fabric8.insight.log.log4j.Log4jLogQuery"
lazy-init="false" scope="singleton" init-method="start"
destroy-method="stop">
</bean>
<!--
The <broker> element is used to configure the ActiveMQ broker.
-->
<broker xmlns="http://activemq.apache.org/schema/core" brokerName="app"
dataDirectory="${activemq.data}" schedulerSupport="true"> <plugins>
<redeliveryPlugin fallbackToDeadLetter="true"
sendToDlqIfMaxRetriesExceeded="true">
<redeliveryPolicyMap>
<redeliveryPolicyMap>
<redeliveryPolicyEntries>
<redeliveryPolicy queue="queue.queue1.>"
backOffMultiplier="2"
maximumRedeliveries="6"
redeliveryDelay="1800000"
useExponentialBackOff="true"/>
</redeliveryPolicyEntries>
</redeliveryPolicyMap>
</redeliveryPolicyMap>
</redeliveryPlugin>
</plugins>
<destinationPolicy>
<policyMap>
<policyEntries>
<policyEntry queue="queue.queue1.>">
<deadLetterStrategy>
<!-- DLQ with expiration set to 2 days -->
<individualDeadLetterStrategy queuePrefix="DLQ."
useQueueForQueueMessages="true" expiration="172800000"/>
</deadLetterStrategy>
</policyEntry>
<policyEntry queue="queue.queue2.>">
<deadLetterStrategy>
<!--
Use the prefix 'DLQ.' for the destination name,
and make
the DLQ a queue rather than a topic
-->
<individualDeadLetterStrategy queuePrefix="DLQ."
useQueueForQueueMessages="true" expiration="345600000" />
</deadLetterStrategy>
</policyEntry>
<policyEntry queue=">">
<deadLetterStrategy>
<!-- DLQ with expiration set to 1 days -->
<individualDeadLetterStrategy queuePrefix="DLQ."
useQueueForQueueMessages="true" expiration="86400000"/>
</deadLetterStrategy>
</policyEntry>
<policyEntry topic=">" >
<!-- The constantPendingMessageLimitStrategy is used to
prevent
slow topic consumers to block producers and affect
other consumers
by limiting the number of messages that are
retained
For more information, see:
http://activemq.apache.org/slow-consumer-handling.html
-->
<pendingMessageLimitStrategy>
<constantPendingMessageLimitStrategy limit="1000"/>
</pendingMessageLimitStrategy>
</policyEntry>
</policyEntries>
</policyMap>
</destinationPolicy>
<!--
The managementContext is used to configure how ActiveMQ is exposed
in
JMX. By default, ActiveMQ uses the MBean server that is started by
the JVM. For more information, see:
http://activemq.apache.org/jmx.html -->
<managementContext>
<managementContext createConnector="true" connectorPort="61609"/>
</managementContext>
<!--
Configure message persistence for the broker. The default persistence
mechanism is the KahaDB store (identified by the kahaDB tag).
For more information, see:
http://activemq.apache.org/persistence.html -->
<persistenceAdapter>
<kahaDB directory="${activemq.data}/kahadb"
journalMaxFileLength="50mb" indexCacheSize="256000"
checkpointInterval="15000"
ignoreMissingJournalfiles="true"
checkForCorruptJournalFiles="true"
checksumJournalFiles="true" />
</persistenceAdapter>
<!--
The systemUsage controls the maximum amount of space the broker will
use before disabling caching and/or slowing down producers. For more
information, see:
http://activemq.apache.org/producer-flow-control.html -->
<systemUsage>
<systemUsage>
<memoryUsage>
<memoryUsage percentOfJvmHeap="70" />
</memoryUsage>
<storeUsage>
<storeUsage limit="100 gb"/>
</storeUsage>
<tempUsage>
<tempUsage limit="50 gb"/>
</tempUsage>
</systemUsage>
</systemUsage>
<!--
The transport connectors expose ActiveMQ over a given protocol to
clients and other brokers. For more information, see:
http://activemq.apache.org/configuring-transports.html -->
<transportConnectors>
<!-- DOS protection, limit concurrent connections to 1000 and frame
size to 100MB -->
<transportConnector name="openwire"
uri="tcp://0.0.0.0:61601?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
</transportConnectors>
<!-- destroy the spring context on shutdown to stop jetty -->
<shutdownHooks>
<bean xmlns="http://www.springframework.org/schema/beans"
class="org.apache.activemq.hooks.SpringContextHook" /> </shutdownHooks>
</broker>
<!--
Enable web consoles, REST and Ajax APIs and demos
The web consoles requires by default login, you can disable this in the
jetty.xml file
Take a look at ${ACTIVEMQ_HOME}/conf/jetty.xml for more details
-->
<import resource="jetty.xml"/>
</beans>
> Duplicate dead letter queues
> ----------------------------
>
> Key: AMQ-6424
> URL: https://issues.apache.org/jira/browse/AMQ-6424
> Project: ActiveMQ
> Issue Type: Bug
> Components: Broker, KahaDB
> Affects Versions: 5.13.0, 5.13.3, 5.14.0
> Environment: JDK 1.8.0_93 , Windows Server 2012 R2
> Reporter: Berge Stillingen
> Priority: Major
> Labels: database, journal, mssql, paging
>
> In version 5.14 (and 5.13.3) it appears the broker is able to 'occasionally'
> create extra DLQ-queues holding duplicate messages.
> Browsing the admin console, you will sometimes see something like this:
> - DLQ.myEventQueue
> - DLQ.DLQ.myEventQueue
> That both hold the samme message ID, eg.
> ID:ClientABC-61753-1471513949441-1:4:1:3:1
> The one from DLQ.myEventQueue is a standard entry caused by a client
> transaction rollback.
> The (unwanted) one from DLQ.DLQ.myEventQueue has a
> - dlqDeliveryFailureCause: java.lang.Throwable: duplicate paged in from store
> for queue://DLQ.myEventQueue
> At some point you can even get a third queue named
> - DLQ.DLQ.DLQ.myEventQueue holding another message with the samme MessageID
> and the same dlqDeliveryFailureCause
> Reproduce: Haven't found a way to provoke the error. It happens occasionally
> in a semi-active test environment running with Mule 3.6.2.
> Best guess is that there is some issue with the use of Journaling and
> synchronization between Kahadb and the MSSQL-database.
> Configuration can be found at
> http://activemq.2283324.n4.nabble.com/file/n4715868/activemq-anonymous.xml
--
This message was sent by Atlassian Jira
(v8.3.4#803005)