activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jan Lievens (JIRA)" <j...@apache.org>
Subject [jira] Commented: (AMQ-2497) Message broker won't come back when the databse goes offline and comes back online
Date Wed, 19 Jan 2011 12:48:44 GMT

    [ 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.


Mime
View raw message