ActiveMQ 5.0 JDBC Master/Slave requires InnoDB table


The slave ActiveMQ broker in a JDBC Master/Slave set up requires that the lock table be of the type InnoDB. MyISAM table can lead to real problems including effectively brining your database down where the only way out would be to kill the slave or reboot your database. For a description of the bug, see here. Basically, you must ensure that the default table creation for your mysql is set to InnoDB, or after you start ActiveMQ, alter its tables in the database (your other options is to modify the ActiveMQ org.apache.activemq.store.jdbc.Statements class and rebuild ActiveMQ).

By default MySQL will create MyISAM based tables. You can alter a table type so that its storage engine is set to InnoDB. For ActiveMQ, you’ll need to alter the three tables that it creates:


ALTER TABLE ACTIVEMQ_LOCK ENGINE = InnoDB;
ALTER TABLE ACTIVEMQ_ACKS ENGINE = InnoDB;
ALTER TABLE ACTIVEMQ_MSGS ENGINE = InnoDB;

2 Responses to “ActiveMQ 5.0 JDBC Master/Slave requires InnoDB table”

  1. sj Says:

    It took while but the AMQ folks have fixed this issue. I got an e-mail of the fix this morning.

  2. c++ and mysql Says:

    c++ and mysql…

    [...]ActiveMQ 5.0 JDBC Master/Slave requires InnoDB table « n o t e 1 9 . c o m[...]…

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s


Follow

Get every new post delivered to your Inbox.

%d bloggers like this: