My Environment is:
Windows 2003 Server + Tomcat 5.5.20 + MySQL 5.0.26
I run ActiveMQ 4.0.1 under Tomcat 5.5.20 in embbed mode. I've configured
MySQL as JDBC persistence,But it doesn't take effect.
I used the same active-mq.xml, But it works well when ActiveMQ runs
standalone.
Here's the content of file webapps/cenep/META-INF/context.xml:
-------------------------------------------------------------------------------------------
<Context antiJARLocking="true">
<Resource name="jdbc/Portal"
auth="Container"
type="javax.sql.DataSource"
validationQuery="select 1 from id_table"
maxActive="100" maxIdle="30" maxWait="10000"
removeAbandoned="true" removeAbandonedTimeout="60"
logAbandoned="true"
username="root" password="mysql"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3316/epdata?autoReconnect=true&useUnicode=true&characterEncoding=gbk"
/>
<Resource name="jms/ConnectionFactory"
auth="Container"
type="org.apache.activemq.ActiveMQConnectionFactory"
description="JMS Connection Factory"
factory="org.apache.activemq.jndi.JNDIReferenceFactory"
brokerURL="tcp://localhost:61616?brokerConfig=xbean:file:C:/ctivemq.xml"
brokerName="LocalActiveMQBroker"
useEmbeddedBroker="true" />
<Resource name="jms/jmsTopic"
auth="Container"
type="org.apache.activemq.command.ActiveMQTopic"
factory="org.apache.activemq.jndi.JNDIReferenceFactory"
physicalName="JMS_TOPIC.Portal" />
<Resource name="jms/jmsQueue"
auth="Container"
type="org.apache.activemq.command.ActiveMQQueue"
factory="org.apache.activemq.jndi.JNDIReferenceFactory"
physicalName="JMS_QUEUE.Portal" />
</Context>
Here's the part content of file C:/active-mq.xml:
-------------------------------------------------------------------------------------------
<persistenceAdapter>
<!--
<journaledJDBC journalLogFiles="5"
dataDirectory="${catalina.home}/activemq-data"/>
-->
<!-- To use a different datasource, use the following syntax : -->
<!--
<journaledJDBC useJournal="false" journalLogFiles="5"
dataDirectory="${catalina.home}/activemq-data" dataSource="#mysql-ds"
statements="#statements"/>
-->
<jdbcPersistenceAdapter dataSource="#mysql-ds"
statements="#statements"/>
</persistenceAdapter>
<!-- MySql DataSource Setup -->
<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:3316/activemq?relaxAutoCommit=true"/>
<property name="username" value="activemq"/>
<property name="password" value="activemq"/>
<property name="poolPreparedStatements" value="true"/>
</bean>
<bean id="statements" class="org.apache.activemq.store.jdbc.Statements">
<property name="stringIdDataType" value="VARCHAR(128)"/>
......
</bean>
Here's the part content of Log
-------------------------------------------------------------------------------------------
[2006-10-25 16:12:35.308 DEBUG] - GET
[EMAIL PROTECTED]
session=B67789683FB7C7CAD227B6C5171AAC15 uri=/activemq-web-demo-4.0.1/amq
query=timeout=0&_=
[2006-10-25 16:12:35.318 DEBUG] - doMessage timeout=0
[2006-10-25 16:12:35.418 DEBUG] - GET
[EMAIL PROTECTED]
session=B67789683FB7C7CAD227B6C5171AAC15 uri=/activemq-web-demo-4.0.1/amq
query=null
[2006-10-25 16:12:35.418 DEBUG] - doMessage timeout=25000
[2006-10-25 16:12:39.264 DEBUG] - POST
[EMAIL PROTECTED]
session=B67789683FB7C7CAD227B6C5171AAC15 info=null
contentType=application/x-www-form-urlencoded
[2006-10-25 16:12:39.934 INFO] - ActiveMQ 4.0.1 JMS Message Broker
(localhost) is starting
[2006-10-25 16:12:39.934 INFO] - For help or more information please see:
http://incubator.apache.org/activemq/
[2006-10-25 16:12:47.185 INFO] - Database driver recognized:
[apache_derby_embedded_jdbc_driver]
[2006-10-25 16:12:50.249 DEBUG] - Executing SQL: 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 ) )
[2006-10-25 16:12:51.741 DEBUG] - Could not create JDBC tables; The message
table already existed. 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:
Table/View 'ACTIVEMQ_MSGS' already exists in Schema 'APP'. SQLState: X0Y32
Vendor code: 20000
--
View this message in context:
http://www.nabble.com/Why-not-using-MySQL-JDBC-persistence-in-embbed-mode-under-Tomcat-5.5.20--tf2506291.html#a6988116
Sent from the ActiveMQ - User mailing list archive at Nabble.com.