tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Germán Ferrari <german.ferr...@gmail.com>
Subject Re: tomcat-jdbc: correct way to create a new separated org.apache.tomcat.jdbc.pool.DataSource from another one
Date Wed, 08 Aug 2012 17:12:06 GMT
On Wed, Aug 8, 2012 at 12:15 PM, Martin Gainty <mgainty@hotmail.com> wrote:

>
> what I was thinking is manipulating maxActive via
> org.apache.commons.dbcp.datasources.SharedPoolDataSource
> http://commons.apache.org/dbcp/apidocs/index.html
>
>
Can you give me an example of how the code would look like?


> unless you will *always* be implementing your DataSource on a IOC
> container and can manipulate the maxActive attribute through a build
> configuration directive
>
> http://tomcat.apache.org/tomcat-7.0-doc/api/org/apache/tomcat/jdbc/pool/PoolConfiguration.html
>
>
The original DataSource is received as a parameter, it doesn't matter if it
is configured by an IOC container or not. The new DataSource is configured
programmatically.


> i would like to hear your solution
>

I've yet to decide.

For the moment I think I have three options:
1. Change some interfaces to receive a Properties object with the pool
configuration and use the suggestion given by Daniel
2. Cast the return of DataSource#getPoolProperties() to PoolProperties and
use it's clone() method.
3. Create a new PoolProperties and set all the properties manually to use
the ones returned by DataSource#getPoolProperties()

I think #2 is the closest to what I originally thought.

Regards,
Germán


> Martin
> ______________________________________________
> Verzicht und Vertraulichkeitanmerkung/Note de déni et de confidentialité
>
> Diese Nachricht ist vertraulich. Sollten Sie nicht der vorgesehene
> Empfaenger sein, so bitten wir hoeflich um eine Mitteilung. Jede unbefugte
> Weiterleitung oder Fertigung einer Kopie ist unzulaessig. Diese Nachricht
> dient lediglich dem Austausch von Informationen und entfaltet keine
> rechtliche Bindungswirkung. Aufgrund der leichten Manipulierbarkeit von
> E-Mails koennen wir keine Haftung fuer den Inhalt uebernehmen.
> Ce message est confidentiel et peut être privilégié. Si vous n'êtes pas le
> destinataire prévu, nous te demandons avec bonté que pour satisfaire
> informez l'expéditeur. N'importe quelle diffusion non autorisée ou la copie
> de ceci est interdite. Ce message sert à l'information seulement et n'aura
> pas n'importe quel effet légalement obligatoire. Étant donné que les email
> peuvent facilement être sujets à la manipulation, nous ne pouvons accepter
> aucune responsabilité pour le contenu fourni.
>
>
> > From: german.ferrari@gmail.com
> > Date: Wed, 8 Aug 2012 08:20:59 -0300
> > Subject: Re: tomcat-jdbc: correct way to create a new separated
> org.apache.tomcat.jdbc.pool.DataSource from another one
> > To: users@tomcat.apache.org
> >
> > Hello,
> >
> > On Tue, Aug 7, 2012 at 9:36 PM, Martin Gainty <mgainty@hotmail.com>
> wrote:
> >
> > >
> > > Germán
> > >
> > > Is there a reason why you would not use
> > > org.apache.commons.dbcp.datasources.SharedPoolDataSource from DBCP 1.4
> > > http://commons.apache.org/dbcp/apidocs/index.html
> >
> > ?
> >
> >
> > For what I've looked in the javadoc of that class, it serves a somewhat
> > different use case. In my concrete use case, the usename and password
> would
> > be the same, the main property I would want to change is the maxActive
> > connections. I want to have a new data source, which is independent of
> the
> > other, son I can potentially close one without affecting the other.
> >
> > Also, at this moment I'm not evaluating to change the connection pooling
> > library.
> >
> > Regards,
> > Germán
> >
> >
> > > Martin
> > > ______________________________________________
> > > Verzicht und Vertraulichkeitanmerkung
> > >
> > > Diese Nachricht ist vertraulich. Sollten Sie nicht der vorgesehene
> > > Empfaenger sein, so bitten wir hoeflich um eine Mitteilung. Jede
> unbefugte
> > > Weiterleitung oder Fertigung einer Kopie ist unzulaessig. Diese
> Nachricht
> > > dient lediglich dem Austausch von Informationen und entfaltet keine
> > > rechtliche Bindungswirkung. Aufgrund der leichten Manipulierbarkeit von
> > > E-Mails koennen wir keine Haftung fuer den Inhalt uebernehmen.
> > >
> > >
> > >
> > >
> > > > From: german.ferrari@gmail.com
> > > > Date: Tue, 7 Aug 2012 20:06:53 -0300
> > > > Subject: tomcat-jdbc: correct way to create a new separated
> > > org.apache.tomcat.jdbc.pool.DataSource from another one
> > > > To: users@tomcat.apache.org
> > > >
> > > > Hello.
> > > >
> > > > I have an use case in which I would want to copy an
> > > > `org.apache.tomcat.jdbc.pool.DataSource`, to have two disjoint
> connection
> > > > pools, with some pool properties changed.
> > > >
> > > > My first thought was to do something like this:
> > > >
> > > > PoolProperties props = new
> > > > PoolProperties(baseDataSource.getPoolProperties());
> > > > // set custom props ...
> > > > DataSource newDataSource = new DataSource(props);
> > > >
> > > >
> > > > The problem is that the PoolProperties class doesn't have such
> > > constructor.
> > > > Another option could be to share the PoolProperties object, but, for
> what
> > > > I've looked into the code, it doesn't seem safe.
> > > >
> > > > The PoolProperties class implements the Cloneable interface, so I
> guess
> > > > it's ok to use its clone method. The problem I have with this option
> is
> > > > that DataSource#getPoolProperties() returns a PoolConfiguration which
> > > > doesn't implements Cloneable. In my case I think it would be safe to
> cast
> > > > the PoolConfiguration to PoolProperties, but it doesn't seem safe
> for the
> > > > general case.
> > > >
> > > > What would be the correct way to create a new separated DataSource
> from
> > > > another one having some properties changed?
> > > >
> > > > I'm using tomcat-jdbc 7.0.29 as a standalone library.
> > > >
> > > > Thank you.
> > > >
> > > > Regards,
> > > > Germán
> > >
> > >
>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message