You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@servicemix.apache.org by Marc Schöchlin <ms...@256bit.org> on 2014/11/12 12:05:40 UTC
Connection Pool for MySQL Datasource by JNDI
Hello list,
i'm currently using the following datasource in my project:
deploy/datasource.xml
---
<?xml version="1.0" encoding="UTF-8"?>
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0">
<!-- *** Datasource: csv2xml
****************************************************** -->
<bean id="dataSource-csv2xml"
class="com.mysql.jdbc.jdbc2.optional.MysqlXADataSource">
<property name="url"
value="jdbc:mysql://foo01.bar.com/csv2xml"/>
<property name="user" value="myuser"/>
<property name="password" value="sdhfhjsgdfhjgsdf"/>
</bean>
<service interface="javax.sql.XADataSource"
ref="dataSource-csv2xml">
<service-properties>
<entry key="osgi.jndi.service.name" value="jdbc/csv2xml"/>
</service-properties>
</service>
</blueprint>
---
This datasource is used by jndi in my osgi bundle.
In my understanding this datasource is not pooled.
This creates unnecessary connection creation overhead.
I was not able to find a good example for a pooled regular or
XA-datasource - i.e. by using the C3P0- or DBCP pool.
(http://www.mchange.com/projects/c3p0/,
http://commons.apache.org/proper/commons-dbcp/)
Can you provide me a example?
What i tried:
(but i was not able to set i.e. the maxTotal option)
---
<?xml version="1.0" encoding="UTF-8"?>
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0">
<!--
http://commons.apache.org/proper/commons-dbcp/configuration.html -->
<bean id="dataSource-ecomx-dbcp"
class="org.apache.commons.dbcp.BasicDataSource">
<property name="username" value="ecomx"/>
<property name="password" value="Ugogsdfsdf7thowoief9Aif1"/>
<property name="url" value="jdbc:mysql://foobar.com/lallaa"/>
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<!--
<property name="initialSize" value="0"/>
<property name="maxIdle" value="20"/>
<property name="minIdle" value="10"/>
<property name="maxTotal" value="30"/>
-->
</bean>
<service interface="javax.sql.DataSource"
ref="dataSource-ecomx-dbcp">
<service-properties>
<entry key="osgi.jndi.service.name"
value="jdbc/lalala-dbcp"/>
</service-properties>
</service>
</blueprint>
---
Any hints?
Wy do i need XA-database interaction?
I would like to use this datasource for camel routes which interact with
the following resources:
- i receive messages from a activemq message queue
- i store data to a mysql datasource
- i write a message to a queue
- i want to rollback all transaction is anything bad happens in the
processing steps of the camel-route
Regards
Marc