You should not use ext with cfg file.
Instead use:
<cm:property-placeholder id="property-placeholder"
persistent-id="DefaultDataSource">
<cm:default-properties>
<cm:property name="foo" value="bar"/>
</cm:default-properties>
</cm:property-placeholder>
Regards
JB
On 12/03/2015 06:22 PM, Marc Durand wrote:
Thanks JB. I am currently using:
<ext:property-placeholder>
<ext:location>file:etc/DefaultDataSource.cfg</ext:location>
</ext:property-placeholder>
How would I go about using blueprint:cm?
Thanks,
Marc
On Thu, Dec 3, 2015 at 11:33 AM, Jean-Baptiste Onofré <[email protected]
<mailto:[email protected]>> wrote:
You can use blueprint:cm to use ConfigAdmin in the blueprint datasource.
Regards
JB
On 12/03/2015 04:20 PM, Marc Durand wrote:
Hi JB,
I believe it is the connection pool. I was creating the
datasource with
blueprint like so:
<bean id="DefaultDataSource"
class="com.microsoft.sqlserver.jdbc.SQLServerConnectionPoolDataSource">
<property name="serverName" value="${Default.server}" />
<property name="user" value="${Default.username}" />
<property name="password" value="${Default.password}" />
</bean>
<bean id="DefaultDataSourcePool"
class="org.apache.commons.dbcp.datasources.SharedPoolDataSource"
destroy-method="close">
<property name="connectionPoolDataSource"
ref="DefaultDataSource" />
<property name="maxActive"
value="${Default.pool.maxActive}" />
<property name="maxIdle" value="${Default.pool.maxIdle}" />
<property name="maxWait" value="${Default.pool.maxWait}" />
<property name="validationQuery"
value="${Default.pool.validationQuery}" />
</bean>
<service ref="DefaultDataSourcePool"
interface="javax.sql.DataSource">
<service-properties>
<entry key="osgi.jndi.service.name
<http://osgi.jndi.service.name>
<http://osgi.jndi.service.name>" value="DefaultDataSource" />
</service-properties>
</service>
I now know that it is incorrect because that configuration is
for the
Apache DBCP. So I changed it to this which works:
<bean id="DefaultDataSource"
class="com.microsoft.sqlserver.jdbc.SQLServerConnectionPoolDataSource">
<property name="serverName" value="${Default.server}" />
<property name="user" value="${Default.username}" />
<property name="password" value="${Default.password}" />
</bean>
<service ref="DefaultDataSource" interface="javax.sql.DataSource">
<service-properties>
<entry key="osgi.jndi.service.name
<http://osgi.jndi.service.name> <http://osgi.jndi.service.name>"
value="DefaultDataSource"/>
<entry key="aries.xa.name <http://aries.xa.name>
<http://aries.xa.name>" value="DefaultDataSource" />
<entry key="datasource.name <http://datasource.name>
<http://datasource.name>"
value="DefaultDataSource"/>
<entry key="aries.xa.poolMaxSize" value="200" />
</service-properties>
</service>
But, I don't want to hardcode the pool size in the blueprint.xml
file.
I would like to use config admin and do something like this:
<bean id="DefaultDataSource"
class="com.microsoft.sqlserver.jdbc.SQLServerConnectionPoolDataSource">
<property name="serverName" value="${Default.server}" />
<property name="user" value="${Default.username}" />
<property name="password" value="${Default.password}" />
</bean>
<service ref="DefaultDataSource" interface="javax.sql.DataSource">
<service-properties>
<entry key="osgi.jndi.service.name
<http://osgi.jndi.service.name> <http://osgi.jndi.service.name>"
value="DefaultDataSource"/>
<entry key="aries.xa.name <http://aries.xa.name>
<http://aries.xa.name>" value="DefaultDataSource" />
<entry key="datasource.name <http://datasource.name>
<http://datasource.name>"
value="DefaultDataSource"/>
<entry key="aries.xa.poolMaxSize"
value="${Default.aries.xa.poolMaxSize}" />
</service-properties>
</service>
The Maven bundle plugin complains about it:
003: No translation found for macro:
Default.aries.xa.connectionMaxWaitMilliseconds, in -----------------
Warnings
000: Unused Private-Package instructions, no such package(s) on the
class path: [!*]
001: No translation found for macro:
Default.aries.xa.exceptionSorter,
in -----------------
Warnings
000: Unused Private-Package instructions, no such package(s) on the
class path: [!*]
And with 4 similar data sources, the build takes over 30 seconds and
eventually runs out of memory. I noticed that those macros (like
${Default.aries.xa.poolMaxSize}) then get included in the
MANIFEST.MF
file, which is not what I want:
Export-Service: javax.sql.DataSource;osgi.jndi.service.name
<http://osgi.jndi.service.name>
<http://osgi.jndi.service.name>=DefaultDataS
ource;aries.xa.name <http://aries.xa.name>
<http://aries.xa.name>=DefaultDataSource;datasource.name
<http://datasource.name>
<http://datasource.name>=DefaultDataSource
;aries.xa.exceptionSorter=${Default.aries.xa.exceptionSorter};aries.xa.
connectionMadIdleMinutes=${Default.aries.xa.connectionMadIdleMinutes};a
ries.xa.connectionMaxWaitMilliseconds=${Default.aries.xa.connectionMaxW
aitMilliseconds};aries.xa.pooling=${Default.aries.xa.pooling};aries.xa.
poolMaxSize=${Default.aries.xa.poolMaxSize};aries.xa.poolMinSize=${Defa
ult.aries.xa.poolMinSize};aries.xa.validateOnMatch=${Default.aries.xa.v
alidateOnMatch};aries.xa.backgroundValidation=${Default.aries.xa.backgr
oundValidation};aries.xa.backgroundValidationMilliseconds=${Default.ari
es.xa.backgroundValidationMilliseconds}
So, is it possible to configure a data source in blueprint when
using
the pax-jdbc-pool-aries where the configuration would be in the etc
directory?
Thanks in advance,
Marc
On Thu, Dec 3, 2015 at 12:36 AM, Jean-Baptiste Onofré
<[email protected] <mailto:[email protected]>
<mailto:[email protected] <mailto:[email protected]>>> wrote:
Hi Marc,
do you think it's the transaction pool ? Maybe it's the
connection
pool ?
For transaction, you can override the default value by creating
etc/org.apache.aries.transaction.cfg file (or using the
config:*
commands).
The default values provided by the feature are:
aries.transaction.recoverable = true
aries.transaction.timeout = 600
aries.transaction.howl.logFileDir =
${karaf.data}/txlog
aries.transaction.howl.maxLogFiles = 2
aries.transaction.howl.maxBlocksPerFile = 512
aries.transaction.howl.bufferSize = 4
For the datasource, it depends how you created the datasource.
Did you use the jdbc:* commands to create the datasource ?
Regards
JB
On 12/03/2015 03:57 AM, Marc Durand wrote:
Hello - I am using Karaf 3.0.5 and noticed that I
cannot run
more than 10
simultaneous database queries because the pool runs out of
connections. I
found the limit to be set to 10 in
org.apache.aries.transaction.jdbc-2.1.0.jar
(org.apache.aries.transaction.jdbc.internal.ConnectionManagerFactory)
where
I found this line: "private int poolMaxSize = 10;" and
also in
ManagedDataSourceFactory class:
"cm.setPoolMaxSize(getInt("aries.xa.poolMaxSize", 10));"
My question is, how can I increase this value?
Thanks,
Marc
--
View this message in context:
http://karaf.922171.n3.nabble.com/Aries-pool-max-size-tp4044047.html
Sent from the Karaf - User mailing list archive at
Nabble.com.
--
Jean-Baptiste Onofré
[email protected] <mailto:[email protected]>
<mailto:[email protected] <mailto:[email protected]>>
http://blog.nanthrax.net
Talend - http://www.talend.com
--
Jean-Baptiste Onofré
[email protected] <mailto:[email protected]>
http://blog.nanthrax.net
Talend - http://www.talend.com
--
Jean-Baptiste Onofré
[email protected]
http://blog.nanthrax.net
Talend - http://www.talend.com