|
We support a range of SQL databases for message persistence such as
as well as a number of generic JDBC providers. Auto-discovery of your JDBC providerWe try to auto-detect from the JDBC driver which JDBCAdapter to use via these config files If you have a JDBC database which we don't support then please let us know what JDBC driver string you're getting and drop us a note or raise an issue in our support database If you're database is not in the above list its normally a matter of tweaking the StatementProvider to ensure that the JDBCMessageStore uses the right flavour of SQL. So normally most databases support one of these providers...
You can explicitly specify the JDBC adaptor class inside the activemq.xml... <jdbcPersistenceAdapter adapterClass="org.apache.activemq.store.jdbc.adapter.ImageBasedJDBCAdaptor"/>
Customizing the SQL DDLYou can confiugure the various SQL datatypes - such as column sizes and so forth - using the statements element <broker useJmx="false"> <persistenceAdapter> <journaledJDBC useJournal="false"> <statements> <statements stringIdDataType ="VARCHAR(128)"/> </statements> </journaledJDBC> </persistenceAdapter> </broker> For more info on what attributes can be set on the statements element, see the Statements class Using MySQLIf you are using MySQL then you should set the relaxAutoCommit flag to be true. e.g. <bean id="mysql-ds" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost/activemq?relaxAutoCommit=true"/> <property name="username" value="activemq"/> <property name="password" value="activemq"/> <property name="poolPreparedStatements" value="true"/> </bean> To see this in action see the default configuration file For AMQ 3.xIn 3.x you can specify the adapter as follows <jdbcPersistence adapterClass="org.activemq.store.jdbc.adapter.ImageBasedJDBCAdaptor"> ... </jdbcPersistence> |