You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@activemq.apache.org by "Dejan Bosanac (JIRA)" <ji...@apache.org> on 2010/12/02 14:10:27 UTC
[jira] Updated: (AMQ-2496) journaledJDBC not creating ACTIVEMQ_MSGS
with MS SQL 2008
[ https://issues.apache.org/jira/browse/AMQ-2496?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Dejan Bosanac updated AMQ-2496:
-------------------------------
Fix Version/s: (was: 5.4.2)
5.5.0
> journaledJDBC not creating ACTIVEMQ_MSGS with MS SQL 2008
> ---------------------------------------------------------
>
> Key: AMQ-2496
> URL: https://issues.apache.org/jira/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.