[
https://issues.apache.org/jira/browse/AMQ-4316?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13582334#comment-13582334
]
Timothy Bish commented on AMQ-4316:
-----------------------------------
Please create and attach a unit tests that demonstrates the issue you are
seeing.
> Problem with duplicate message detection using ObjectMessage with equal object
> ------------------------------------------------------------------------------
>
> Key: AMQ-4316
> URL: https://issues.apache.org/jira/browse/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="http://www.springframework.org/schema/beans"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xmlns:aop="http://www.springframework.org/schema/aop"
> xmlns:context="http://www.springframework.org/schema/context"
> xmlns:amq="http://activemq.apache.org/schema/core"
> xmlns:jms="http://www.springframework.org/schema/jms"
> xmlns:tx="http://www.springframework.org/schema/tx"
> xsi:schemaLocation="http://www.springframework.org/schema/beans
> http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
> http://www.springframework.org/schema/tx
> http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
> http://www.springframework.org/schema/context
> http://www.springframework.org/schema/context/spring-context-3.0.xsd
> http://www.springframework.org/schema/aop
> http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
> http://activemq.apache.org/schema/core
> http://activemq.apache.org/schema/core/activemq-core-5.4.1.xsd
> http://www.springframework.org/schema/jms
> http://www.springframework.org/schema/jms/spring-jms-3.0.xsd">
> <!-- lets create an embedded ActiveMQ Broker -->
> <amq:broker brokerName="broker" id="broker" useJmx="true"
> useShutdownHook="false"
> persistent="true" enableStatistics="true">
>
> <!-- add network
> http://activemq.apache.org/networks-of-brokers.html -->
>
> <amq:persistenceAdapter>
> <amq:kahaDB directory="activemq-data/broker/KahaDB"
> journalMaxFileLength="32mb"/>
> </amq:persistenceAdapter>
>
> <amq:networkConnectors>
> <amq:networkConnector
> uri="${server.activemq.networkconnectors.uri}" />
> </amq:networkConnectors>
>
> <amq:destinationPolicy>
> <amq:policyMap>
> <amq:policyEntries>
> <amq:policyEntry queue=">"
> optimizedDispatch="true"
> lazyDispatch="false"
> producerFlowControl="false" memoryLimit="128 mb"
> strictOrderDispatch="true">
> <amq:dispatchPolicy>
>
> <amq:strictOrderDispatchPolicy />
> </amq:dispatchPolicy>
> <amq:messageGroupMapFactory>
>
> <amq:simpleMessageGroupMapFactory />
> </amq:messageGroupMapFactory>
> <amq:subscriptionRecoveryPolicy>
>
> <amq:timedSubscriptionRecoveryPolicy
>
> recoverDuration="360000" />
>
> </amq:subscriptionRecoveryPolicy>
> </amq:policyEntry>
> </amq:policyEntries>
> </amq:policyMap>
> </amq:destinationPolicy>
> <amq:systemUsage>
> <amq:systemUsage sendFailIfNoSpace="true" >
> <amq:memoryUsage>
> <amq:memoryUsage limit="256mb" />
> </amq:memoryUsage>
> <amq:storeUsage>
> <amq:storeUsage limit="0" />
> </amq:storeUsage>
> <amq:tempUsage>
> <amq:tempUsage limit="4096mb" />
> </amq:tempUsage>
> </amq:systemUsage>
> </amq:systemUsage>
>
> <amq:transportConnectors>
> <!--<amq:transportConnector
> uri="tcp://localhost:0?jms.prefetchPolicy.all=50"
> /> -->
> <amq:transportConnector uri="vm://localhost:0" />
> <amq:transportConnector name="gwt-ajax"
> uri="tcp://0.0.0.0:${jms.port}"/>
> </amq:transportConnectors>
> </amq:broker>
> <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"
> destroy-method="close">
> <property name="uniqueResourceName"
> value="borgenBackOfficeJmsConnectionFactory" />
> <property name="xaConnectionFactory" ref="jmsFactory" />
> <property name="maxPoolSize" value="96" />
> <property name="minPoolSize" value="4" />
> </bean>
> <bean id="lifecycleProcessor"
>
> class="org.springframework.context.support.DefaultLifecycleProcessor">
> <!-- timeout value in milliseconds -->
> <property name="timeoutPerShutdownPhase" value="1500" />
> </bean>
> </beans>
> --
--
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: http://www.atlassian.com/software/jira