[
https://issues.apache.org/activemq/browse/AMQ-2496?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Bruce Snyder updated AMQ-2496:
------------------------------
Fix Version/s: 5.5.0
(was: 5.4.1)
> journaledJDBC not creating ACTIVEMQ_MSGS with MS SQL 2008
> ---------------------------------------------------------
>
> Key: AMQ-2496
> URL: https://issues.apache.org/activemq/browse/AMQ-2496
> Project: ActiveMQ
> Issue Type: Bug
> Components: Broker
> Affects Versions: 5.3.0
> Environment: MS SQL 2008
> Reporter: hiskill
> Priority: Blocker
> Fix For: 5.5.0
>
>
> Env:
> - ActiveMQ 5.3.0
> - deployed as RAR on JBoss
> - database : MS SQL 2008
> When the broker starts up for the first time, table ACTIVEMQ_MSGS is not
> getting created automatically which throws the below exception and the broker
> never comes up.
> Reason: java.io.IOException: Failed to get last broker message id:
> com.microsoft.sqlserver.jdbc.SQLServerException: Invalid object name
> 'ACTIVEMQ_MSGS'.
> java.io.IOException: Failed to get last broker message id:
> com.microsoft.sqlserver.jdbc.SQLServerException: Invalid object name
> 'ACTIVEMQ_MSGS'.
> at
> org.apache.activemq.util.IOExceptionSupport.create(IOExceptionSupport.java:33)
> at
> org.apache.activemq.store.jdbc.JDBCPersistenceAdapter.getLastMessageBrokerSequenceId(JDBCPersistenceAdapter.java:170)
> at
> org.apache.activemq.store.journal.JournalPersistenceAdapter.getLastMessageBrokerSequenceId(JournalPersistenceAdapter.java:212)
> at
> org.apache.activemq.broker.region.DestinationFactoryImpl.getLastMessageBrokerSequenceId(DestinationFactoryImpl.java:140)
> at
> org.apache.activemq.broker.region.RegionBroker.<init>(RegionBroker.java:106)
> at
> org.apache.activemq.broker.jmx.ManagedRegionBroker.<init>(ManagedRegionBroker.java:94)
> at
> org.apache.activemq.broker.BrokerService.createRegionBroker(BrokerService.java:1695)
> at
> org.apache.activemq.broker.BrokerService.createRegionBroker(BrokerService.java:1689)
> at
> org.apache.activemq.broker.BrokerService.createBroker(BrokerService.java:1649)
> at org.apache.activemq.broker.BrokerService.getBroker(BrokerService.java:667)
> at
> org.apache.activemq.broker.BrokerService.getAdminConnectionContext(BrokerService.java:1866)
> at
> org.apache.activemq.broker.BrokerService.startDestinations(BrokerService.java:1853)
> at org.apache.activemq.broker.BrokerService.start(BrokerService.java:450)
> at
> org.apache.activemq.xbean.XBeanBrokerService.afterPropertiesSet(XBeanBrokerService.java:56)
> at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1369)
> at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1335)
> at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:473)
> Only workaround is to create the table ACTIVEMQ_MSGS manually and restart the
> broker.
> Here is my broker-config.xml :
> <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>
> Note that I don't see the issue with MSSQL 2000 2005, not sure whats the
> problem with 2008 version.
> Let me know if there is any cofiguration missing which would resolve the
> issue with MS SQL 2008 and any other databases which could have the sample
> problem.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.