ActiveMQ的一个问题

安装了activemq,然后要配置成数据库持久化的。

参考文档:

http://activemq.apache.org/persistence.html

 

这是个pdf教程,比较详细:

http://open.iona.com/docs/broker/5.0/persistence/persistence.pdf

 

启动之后报错:

 

java.io.IOException: Failed to get last broker message id:
com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: Table 'activemq.activemq_acks' doesn't exist

 按道理数据表会在启动的时候自动创建。因为journaledJDBC有个属性createTablesOnStartup默认是true。并且查看了一下数据库,有两个表:

ACTIVEMQ_LOCK    
 ACTIVEMQ_MSGS

  已经创建了,就是ACTIVEMQ_ACKS没有创建。

 

搜索了一下,在activemq的邮件列表里找到答案:

http://www.mail-archive.com/users@activemq.apache.org/msg03698.html

Specified key was too long; max key length is 1000 bytes is the error not
allowing the creation of ACTIVEMQ_ACKS

You are probably using utf8/some other multibyte encoding as the collation
in your database....

Switch it to latin1 or ASCII... The varchar fields that the key is composed
of add up to less than 1000 characters but with a multibyte encoding the key
length is over 1000 bytes.

 

我创建activemq数据库的时候用的character-set是utf-8.把character-set改成latin1就好了。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值