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

hiskill commented on AMQ-2496:
------------------------------

Can someone advice on this issue?  Adviced config change in broker-config.xml 
only solves the problem for MSSQL, it created a regression in ORACLE now.

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

Reply via email to