Hi Johan

So mostly we need to work out the flavour of SQL that MaxDB supports
and to figure out what the DDL should look like etc. We have a number
of JDBC adaptors for the various different drives together with how
they handle data types and blobs etc. It could be we just need to
write one for MaxDB.

Also it could be we need to tweak a little the SQL data types we use -
I"ve just added a new section to this page describing how to do
that....

http://docs.codehaus.org/display/ACTIVEMQ/JDBC+Support

Once we basically know the right combination of options that work for
MaxDB, we can add an entry into ActiveMQ so that we auto-discover the
database from the JDBC connection type name and do the right thing.

e.g. here is the current list of auto-discovered configurations of
JDBC, where the file name is the JDBC connection type name returned
from the JDBC driver

http://svn.apache.org/repos/asf/incubator/activemq/trunk/activemq-core/src/main/resources/META-INF/services/org/apache/activemq/store/jdbc/

James

On 3/23/06, Johan Hallgren <[EMAIL PROTECTED]> wrote:
> Hi list,
>
> I am currently in the process of evaluating ActiveMQ. Reading 
> http://activemq.org/JDBC+Support I see that it supports quite a lot of 
> databases, but unfortunately not the one that my company is using (MaxDB 
> (formerly SAPDB), http://www.mysql.com/products/maxdb/). I try to configure 
> activemq to use it by copying its JDBC jar file to activemq's lib directory, 
> and configuring activemq.xml to use it like this:
>
>   <bean id="maxdb-ds" class="org.apache.commons.dbcp.BasicDataSource" 
> destroy-method="close">
>     <property name="driverClassName" value="com.sap.dbtech.jdbc.DriverSapDB"/>
>     <property name="url" value="jdbc:sapdb://localhost/DatabaseInstanceName"/>
>     <property name="username" value="activemquser"/>
>     <property name="password" value="activemquser"/>
>   </bean>
>
> I used the MySQL sample config section as a template and substituted values 
> for my MaxDB instance (the class value I used as is, since I didn't know what 
> to use there). However, when starting ActiveMQ, I get these errors (I have 
> created the database user mentioned above, but not created any tables in that 
> schema):
>
> ACTIVEMQ_HOME: /usr/local/activemq-4.0-M4
> Loading message broker from: xbean:activemq.xml
> INFO  BrokerService                  - ActiveMQ 4.0-M4 JMS Message Broker 
> (localhost) is starting
> INFO  BrokerService                  - For help or more information please 
> see:http://www.logicblaze.com
> WARN  JDBCPersistenceAdapter         - Database driver NOT recognized: 
> [sap_db].  Will use default JDBC implementation.
> WARN  DefaultJDBCAdapter             - Could not create JDBC tables; they 
> couldalready exist. Failure was: CREATE TABLE ACTIVEMQ_MSGS(ID INTEGER NOT 
> NULL, CONTAINER VARCHAR(250), MSGID_PROD VARCHAR(250), MSGID_SEQ INTEGER, 
> EXPIRATION BIGINT, MSG BLOB, PRIMARY KEY ( ID ) ) Message: [-4006] (at 128): 
> Unknown domain name:BIGINT SQLState: I4006 Vendor code: -4006
>
> ...Further similar errors snipped.
>
> From my understanding of what is happening, it seems that the SQL statements 
> that are used by ActiveMQ won't work on MaxDB (BIGINT is indeed a field type 
> that is not recognized by that database). My questions are thus:
>
> * Does anyone successfully use ActiveMQ with MaxDB, and if so, how should I 
> configure activemq.xml to make it work?
> * If it does indeed not work, what would it take to add support for MaxDB to 
> ActiveMQ? The ActiveMQ web site further mentions that "If you have a JDBC 
> database which we don't support then please let us know what JDBC driver 
> string you're getting." If someone would tell me how, I'd be happy to provide 
> the JDBC string I'm getting (could it be "sap_db", as seen in the output 
> snippet above?), and help in any other way I can to add support for this 
> database.
>
> Thanks in advance for any insight!
>
> Regards,
> Johan Hallgren
>
>


--

James
-------
http://radio.weblogs.com/0112098/

Reply via email to