I'm trying to use MS SQL database as ActiveMQ datastore, so I've put MS SQL driver 3.0 (sqljdbc4.jar) in $ACTIVE_MQ/lib folder and configured MS SQL datasource. But when I start ActiveMQ I get the following error message:
INFO | Database adapter driver override not found for : [microsoft_sql_server_jdbc_driver_3_0]. Will use default implementation.
WARN | Could not create JDBC tables; they could already exist. Failure was: CREATE TABLE ACTIVEMQ_MSGS(ID BIGINT NOT NULL, CONTAINER VARCHAR(250), MSGID_PROD VARCHAR(250), MSGID_SEQ BIGINT, EXPIRATION BIGINT, MSG BLOB, PRIMARY KEY ( ID ) ) Message: Column, parameter, or variable #6: Cannot find data type BLOB. SQLState: S0007 Vendor code: 2715
I found the similar problem description here: http://activemq.2283324.n4.nabble.com/activemq-and-sql-server-2008-td2367448.html
But it relates to 2.0 version of MS SQL driver. I can't use version 2.0, because it complains that it does not work with java 1.6. So, I opened META-INF/services/org/apache/activemq/store/jdbc folder in $ACTIVEMQ_HOME/lib/activemq-core-5.4.2.jar and copied microsoft_sql_server_jdbc_2_0_driver as microsoft_sql_server_jdbc_driver_3_0. After that ActiveMQ started successfully.
So, the workaround is to add a "microsoft_sql_server_jdbc_driver_3_0" file to "activemq-core" lib.
Can you please, add this file to a code base (if this is a right solution) or provide any other changes to support JDBC driver for MS SQL (version 3.0).
|Field||Original Value||New Value|
|Status||Open [ 1 ]||Resolved [ 5 ]|
|Assignee||Gary Tully [ gtully ]|
|Fix Version/s||5.5.0 [ 12315626 ]|
|Resolution||Fixed [ 1 ]|