activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Pether Sörling (JIRA) <>
Subject [jira] [Created] (AMQ-4316) Problem with duplicate message detection using ObjectMessage with equal object
Date Thu, 14 Feb 2013 13:24:12 GMT
Pether Sörling created AMQ-4316:

             Summary: Problem with duplicate message detection using ObjectMessage with equal
                 Key: AMQ-4316
             Project: ActiveMQ
          Issue Type: Bug
          Components: Broker, Message Store
    Affects Versions: 5.8.0
         Environment: Activemq 5.8.0, Kahadb store.
            Reporter: Pether Sörling
            Priority: Critical

When sending any ObjectMessage that contain an equal object to was been sent before I get
from KahaDBStore : Duplicate message add attempt rejected.

So even if the messageId and commandId is different the message is still detected as a duplicate
and ignored.

A simple test would be to create two objectmessages with "session.createObjectMessage("ANY
OBJECT THAT is Equal")" and send to a queue. 

Our code worked with version 5.7.0 and tested amq-store as well as KahaDbstore. 

-- activemq config--
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns=""
	xmlns:xsi="" xmlns:aop=""
	xmlns:amq="" xmlns:jms=""

	<!-- lets create an embedded ActiveMQ Broker -->
	<amq:broker brokerName="broker" id="broker" useJmx="true" useShutdownHook="false"
		persistent="true" enableStatistics="true">
		<!-- add network -->
      		<amq:kahaDB directory="activemq-data/broker/KahaDB" journalMaxFileLength="32mb"/>

      		<amq:networkConnector uri="${server.activemq.networkconnectors.uri}" />
					<amq:policyEntry queue=">" optimizedDispatch="true"
						lazyDispatch="false" producerFlowControl="false" memoryLimit="128 mb"
							<amq:strictOrderDispatchPolicy />
							<amq:simpleMessageGroupMapFactory />
								recoverDuration="360000" />

       <amq:systemUsage sendFailIfNoSpace="true" >
           <amq:memoryUsage limit="256mb" />
           <amq:storeUsage limit="0" />
           <amq:tempUsage limit="4096mb" />
			<!--<amq:transportConnector uri="tcp://localhost:0?jms.prefetchPolicy.all=50"
				/> -->
			<amq:transportConnector uri="vm://localhost:0" />
			<amq:transportConnector name="gwt-ajax" uri="tcp://${jms.port}"/>


	<amq:xaConnectionFactory id="jmsFactory"
		brokerURL="${server.activemq.jmsfactory.brokerURL}" />

	<!-- <bean id="connectionFactory" class="org.springframework.jms.connection.CachingConnectionFactory"
		depends-on="broker"> <constructor-arg ref="jmsFactory" /> <property name="sessionCacheSize"
		value="100" /> </bean> -->

	<bean id="connectionFactory" depends-on="broker"
		class="com.atomikos.jms.AtomikosConnectionFactoryBean" init-method="init"
		<property name="uniqueResourceName" value="borgenBackOfficeJmsConnectionFactory" />
		<property name="xaConnectionFactory" ref="jmsFactory" />
		<property name="maxPoolSize" value="96" />
		<property name="minPoolSize" value="4" />

	<bean id="lifecycleProcessor"
		<!-- timeout value in milliseconds -->
		<property name="timeoutPerShutdownPhase" value="1500" />


This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see:

View raw message