On Fri, 2010-07-30 at 15:04 -0700, Matthew J. wrote: > I have been running an embedded ActiveMQ database, using MySQL as the JDBC > data source. This worked fine under MySQL 5.4. I have recently tried > upgrading to MySQL 5.5.5. ActiveMQ works fine as long as the three required > tables in the activemq database are already created. However, if they > aren't, it fails to create the tables. > > The problem appears to be in the create table script that's used. In > previous versions of MySQL, it was legal (though deprecated as of 4.1) to > specify the engine using the "TYPE=INNODB" syntax. However, the preferred > non-deprecated way to do it was to use "ENGINE=INNODB" instead. However, > under 5.5.5, it appears that the MySQL developers have made the "TYPE" > syntax completely illegal, requiring use of the "ENGINE" syntax. > > A relevant MySQL bug discussing the issue: > http://bugs.mysql.com/bug.php?id=17501 > > The following is an example of the actual SQL that is generated by ActiveMQ: > > CREATE TABLE ACTIVEMQ_MSGS(ID BIGINT NOT NULL, CONTAINER VARCHAR(250), > MSGID_PROD VARCHAR(250), MSGID_SEQ BIGINT, EXPIRATION BIGINT, MSG LONGBLOB, > PRIMARY KEY ( ID ) ) TYPE=INNODB > > I haven't had the opportunity to test it, but it seems likely that the > culprit is MySqlJDBCAdapter.java. It includes the line: > > String typeClause = " TYPE="+type; > > which should probably change to > > String typeClause = " ENGINE="+type; >
Can you open a new Jira issue for this, and even better, attach a patch :) Regards -- Tim Bish Open Source Integration: http://fusesource.com ActiveMQ in Action: http://www.manning.com/snyder/ Follow me on Twitter: http://twitter.com/tabish121 My Blog: http://timbish.blogspot.com/