On Wed, Aug 8, 2012 at 12:15 PM, Martin Gainty <mgai...@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.ferr...@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 <mgai...@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.ferr...@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 > > > > > > > >