【发布时间】:2013-10-01 17:05:05
【问题描述】:
在我的 ActiveMQ 配置中,我想将默认的数据库锁事务隔离级别更改为 TRANSACTION_REPEATABLE_READ。
public void setTransactionIsolation(int transactionIsolation)将事务隔离级别设置为其他
TRANSACTION_READ_UNCOMMITTED这个允许的脏隔离级别可能 在集群数据库环境中无法实现,因此限制性更强 可能需要昂贵的选项,例如TRANSACTION_REPEATABLE_READ查看Connection中的隔离级别常量
在 XML 配置中,jdbcPersistenceAdapter 的transactionIsolation 属性只接受整数类型的值,所以我不能直接使用Connection.TRANSACTION_REPEATABLE_READ 常量,而只能使用value (4):
<persistenceAdapter>
<jdbcPersistenceAdapter dataDirectory="${activemq.data}" dataSource="#mysql-ds" transactionIsolation="4" lockKeepAlivePeriod="5000">
<locker>
<lease-database-locker lockAcquireSleepInterval="10000"/>
</locker>
</jdbcPersistenceAdapter>
</persistenceAdapter>
有没有办法,我可以指定常量而不是硬编码数字“4”?
由于 ActiveMQ 是基于 Spring 的,我想我可以尝试通过使用 <util:constant> 以某种方式分配它,但找不到如何去做......
【问题讨论】: