Index: /Users/sjavey/Documents/workspace/amq/activemq/activemq-core/src/main/java/org/apache/activemq/store/jdbc/adapter/MySqlJDBCAdapter.java =================================================================== --- /Users/sjavey/Documents/workspace/amq/activemq/activemq-core/src/main/java/org/apache/activemq/store/jdbc/adapter/MySqlJDBCAdapter.java (revision 615627) +++ /Users/sjavey/Documents/workspace/amq/activemq/activemq-core/src/main/java/org/apache/activemq/store/jdbc/adapter/MySqlJDBCAdapter.java (working copy) @@ -27,6 +27,21 @@ public void setStatements(Statements statements) { statements.setLockCreateStatement("LOCK TABLE " + statements.getFullLockTableName() + " WRITE"); statements.setBinaryDataType("LONGBLOB"); + + // Alter the tables to use the MySQL InnoDB storage engine + String[] innodb = new String[] { + "ALTER TABLE " + statements.getFullLockTableName() + " ENGINE = InnoDB;", + "ALTER TABLE " + statements.getDurableSubAcksTableName() + " ENGINE = InnoDB;", + "ALTER TABLE " + statements.getMessageTableName() + " ENGINE = InnoDB;" + }; + String[] createStatements = statements.getCreateSchemaStatements(); + String[] updatedCreateStatements = new String[innodb.length + createStatements.length]; + System.arraycopy(createStatements, 0, updatedCreateStatements, 0, createStatements.length); + System.arraycopy(innodb, 0, updatedCreateStatements, createStatements.length, innodb.length); + statements.setCreateSchemaStatements(updatedCreateStatements); + super.setStatements(statements); - } + } + } + \ No newline at end of file