[ 
https://issues.apache.org/jira/browse/AMQ-4316?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Timothy Bish closed AMQ-4316.
-----------------------------

    Resolution: Incomplete

No test case or supporting information supplied.
                
> 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
>             Fix For: AGING_TO_DIE
>
>
> 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

Reply via email to