activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From cobrien <clark.obr...@ttmsolutions.com>
Subject Re: MS Sql server Master Slave problem
Date Mon, 12 Jul 2010 22:31:29 GMT

Hi:
Set  useDatabaseLock=true. 

-Clark

www.ttmsolutions.com
ActiveMQ reference guide at
http://bit.ly/AMQRefGuide 

 




test4john wrote:
> 
> Client code start producing msg OK, but if stop broker A in the middle of
> the loop (expect broker B will take over and continue to produce),
> exception occurred:
> 
> Violation of PRIMARY KEY constraint 'PK__ACTIVEMQ_MSGS__7A521F79'. Cannot
> insert duplicate key in object 'dbo.ACTIVEMQ_MSGS'.
> 	at
> org.apache.activemq.util.JMSExceptionSupport.create(JMSExceptionSupport.java:49)
> 	at
> org.apache.activemq.ActiveMQConnection.syncSendPacket(ActiveMQConnection.java:1273)
> 	at org.apache.activemq.ActiveMQSession.send(ActiveMQSession.java:1754)
> 	at
> org.apache.activemq.ActiveMQMessageProducer.send(ActiveMQMessageProducer.java:231)
> 	at
> org.apache.activemq.ActiveMQMessageProducerSupport.send(ActiveMQMessageProducerSupport.java:241)
> 	at com.verizon.ams.esme.TestJMS.main(TestJMS.java:91)
> 
> 
> Suspect it is a MS Sql specific problem but not sure ..
> 
> Any suggestion appreciated !
> 
> -----------------------------------
> Client code:
> 
> ConnectionFactory connectionFactory = new
> ActiveMQConnectionFactory(ActiveMQConnection.DEFAULT_USER,
> ActiveMQConnection.DEFAULT_PASSWORD,
> 					"failover:(tcp://A:61616,tcp://B:61616)?randomize=false");
> 		    Connection connection = connectionFactory.createConnection();
> 		    connection.start();
> 		    Session session = connection.createSession(false,
> Session.AUTO_ACKNOWLEDGE);
> 		    Queue testQueue = session.createQueue("MYTest");
> 		    MessageProducer producer = session.createProducer(testQueue);
> 		    producer.setDeliveryMode( DeliveryMode.PERSISTENT );
> 
> 		    Message testMessage = session.createMessage();
> 		    for(int i = 0; i < 30; i++){
> 		    	testMessage.setStringProperty("testKey" + i, "testValue" + i);
> 		    	producer.send(testMessage);
> 		    	System.out.println("Now " + i + "th msg is produced.");
> 		    	Thread.sleep(1000);
> 		    }
> 
> 
> 
> Two brokers configured as:
> 
> 
> <beans
>   
>   <bean id="mssql-ds" class="org.apache.commons.dbcp.BasicDataSource"
> destroy-method="close">
> 	<property name="driverClassName"
> value="com.microsoft.sqlserver.jdbc.SQLServerDriver" /> 
> 	<property name="url"
> value="jdbc:sqlserver://dbserver:1433;databaseName=dbn;user=user;password=pwd"
> /> 
> 	<property name="username" value="user" /> 
> 	<property name="password" value="pwd" /> 
>   </bean>
> 
>   <broker useJmx="false" xmlns="http://activemq.apache.org/schema/core">
> 
>     <!-- In ActiveMQ 4, you can setup destination policies -->
>     <destinationPolicy>
>       <policyMap>
>         <policyEntries>
> 
>           <policyEntry topic="FOO.>">
>             <dispatchPolicy>
>               <strictOrderDispatchPolicy/>
>             </dispatchPolicy>
>             <subscriptionRecoveryPolicy>
>               <lastImageSubscriptionRecoveryPolicy/>
>             </subscriptionRecoveryPolicy>
>           </policyEntry>
> 
>         </policyEntries>
>       </policyMap>
>     </destinationPolicy>
> 
> 
> 	
>   <persistenceAdapter>
> 	<jdbcPersistenceAdapter dataDirectory="activemq-data"
> dataSource="#mssql-ds" useDatabaseLock="false"/>
>   </persistenceAdapter>
>   
>  
> 
>     <transportConnectors>
>       <transportConnector name="openwire" uri="tcp://0.0.0.0:61616"
> discoveryUri="multicast://default"/>
>       <transportConnector name="stomp" uri="stomp://localhost:61613"/>
>       <transportConnector name="xmpp" uri="xmpp://localhost:61222"/>
>     </transportConnectors>
> 
>     <networkConnectors>
>       <!-- by default just auto discover the other brokers -->
>       <!-- networkConnector name="defaultNetwork"
> uri="multicast://default"/ -->
>       <!--
>       <networkConnector name="host1 and host2"
> uri="static://(tcp://host1:61616,tcp://host2:61616)" failover="true"/>
>       -->
>     </networkConnectors>
> 
>   </broker>
> 
>   <!-- lets create a command agent to respond to admin commands over JMS
> or XMPP on the ActiveMQ.Agent topic -->
>   <commandAgent xmlns="http://activemq.apache.org/schema/core"/>
> 
> </beans>
> 
> 
> 

-- 
View this message in context: http://old.nabble.com/MS-Sql-server-Master-Slave-problem-tp29144656p29144759.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.


Mime
View raw message