You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@activemq.apache.org by "Gary Tully (JIRA)" <ji...@apache.org> on 2011/03/28 14:53:06 UTC

[jira] [Commented] (AMQ-2497) Message broker won't come back when the databse goes offline and comes back online

    [ https://issues.apache.org/jira/browse/AMQ-2497?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13012032#comment-13012032 ] 

Gary Tully commented on AMQ-2497:
---------------------------------

The fix for https://issues.apache.org/jira/browse/AMQ-1780 will help in the case of a single broker.
The master/slave case and database locker needs a little more work.

DefaultDatabaseLocker failure may need to delegate to the IOException handler or a JDBC specific variant and reinitialize a DefaultDatabaseLocker before resuming transports such that it can become a master or slave as appropriate. There needs to be a bunch of additional tests to validate the usecases. Also the migration from master to slave may need some work w.r.t to jmx attributes

@Jan re a patch, contributions are most welcome ;-) you are on the right road. 


> 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
>            Assignee: Gary Tully
>            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.
For more information on JIRA, see: http://www.atlassian.com/software/jira