ActiveMQ fails to create tables in MySQL 5.5.5
----------------------------------------------

                 Key: AMQ-2857
                 URL: https://issues.apache.org/activemq/browse/AMQ-2857
             Project: ActiveMQ
          Issue Type: Bug
    Affects Versions: 5.3.2
         Environment: MySQL 5.5.5
            Reporter: Matthew J.
            Priority: Minor


Running an embedded ActiveMQ database, using MySQL as the JDBC data source 
worked fine under MySQL 5.4.  After upgrading to MySQL 5.5.5, ActiveMQ works 
fine as long as the three required tables in the activemq database already 
exist (activemq_acks, activemq_lock, activemq_msgs).  However, if they don't 
exist, it fails to create the tables, whereas the tables would be automatically 
created under MySQL 5.4.

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.  The preferred non-deprecated way to do 
it was to use "ENGINE=INNODB" instead.  Under 5.5.5, it appears that the "TYPE" 
syntax is now completely illegal, requiring use of the "ENGINE" syntax instead.

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 have not yet tested 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;

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