[
https://issues.apache.org/jira/browse/AMQ-2497?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12983686#action_12983686
]
Jan Lievens commented on AMQ-2497:
----------------------------------
It appears that there is a test present in the activemq-core module called
org.apache.activemq.broker.ft.DbRestartJDBCQueueMasterSlaveTest that tests the
scenario where the DB goes down and comes up again in a master/slave
configuration.
The outcome of this test is that the master goes down never to come up again
(which is the state that shouldn't occur). On the other hand the slave becomes
the master when the DB comes up again (which is after the master went down).
This test doesn't check if the master or slave is up or down nor what
master/slave states they are in.
So basically the problem is that when a master sees his DB-store fail he should
revert to a slave state and not to the dead state. And when the DB comes up
again the fastest of the 2 slaved brokers becomes master. This way we don't
have to manually start the dead master after each DB failure.
> Message broker won't come back when the databse goes offline and comes back
> online
> ----------------------------------------------------------------------------------
>
> Key: AMQ-2497
> URL: https://issues.apache.org/jira/browse/AMQ-2497
> Project: ActiveMQ
> Issue Type: Bug
> Components: Broker
> Affects Versions: 5.3.0
> Environment: MS SQL 2000,2005,2008
> Reporter: hiskill
> Priority: Blocker
> Fix For: 5.5.0
>
>
> - deployed ActiveMQ 5.3.0 as RAR on JBoss
> - broker comes up fine
> - at some point database goes offline
> - broker can't communicate with database and shuts down
> - now database comes back online
> - borker will never come back again and will have to restart the JBoss
> manually again to start the broker
> This will be a blocker for us to go to production as there is no availability
> of broker when database goes offline and comes back.
> Here is my broker-config.xml, let me know if any configuration is missing :
> <beans xmlns="http://activemq.apache.org/schema/core">
> <bean xmlns=""
> class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"/>
> <bean xmlns="" id="my-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://mydb:1433;databaseName=myds"/>
> <property name="username" value="sql"/>
> <property name="password" value="sql"/>
> <property name="initialSize" value="10"/>
> <property name="poolPreparedStatements" value="true"/>
> </bean>
> <!-- shutdown hook is disabled as RAR classloader may be gone at shutdown -->
> <broker useJmx="true" brokerName="sample.broker1" useShutdownHook="false">
> <destinations>
> <topic physicalName="pocket" />
> </destinations>
> <managementContext>
> <!-- use appserver provided context instead of creating one,
> for jboss use: -Djboss.platform.mbeanserver -->
> <managementContext createConnector="false"/>
> </managementContext>
> <persistenceAdapter>
> <!-- <amqPersistenceAdapter syncOnWrite="false"
> directory="${jboss.server.data.dir}/activemq" maxFileLength="20 mb"/> -->
> <!-- <journaledJDBC journalLogFiles="5"
> dataDirectory="${jboss.server.data.dir}/activemq"/> -->
> <!-- To use a different datasource, use th following syntax : -->
> <!-- <kahaPersistenceAdapter directory="${jboss.server.data.dir}/activemq"
> maxDataFileLength="33554432"/> -->
> <journaledJDBC journalLogFiles="5"
> dataDirectory="${jboss.server.data.dir}/activemq" dataSource="#my-ds"
> useDatabaseLock="false" />
> </persistenceAdapter>
> <transportConnectors>
> <transportConnector name="sample.broker1" uri="tcp://localhost:3030"
> discoveryUri="multicast://default"/>
> </transportConnectors>
> </broker>
> </beans>
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.