Thanks. That makes sense. Pooling for the duration of that single web service call is not our main goal. However, JAX-RS allows me to persist objects in memory across web service calls, so I can keep a collection of DataSource instances (e.g., by database name, in a ConcurrentHashMap). No problem keeping DataSource instances in memory for an extended period of time, is there?
btw, I have worked with Microsoft tools in the past, including SQL Server ADO.NET connection pooling. There, you get one connection pool per connection string, regardless of what object instance you use to instantiate your connection objects. That is doubtlessly why I came to Tomcat connection pooling with a connection-URL-equals-connection-pool mindset. On a tangent, I am very eager to monitor Tomcat connection pooling so that I can see what is going on with the connection pools. To that end, I have configured both the JMXProxyServlet (via the "manage" webapp), and PSI Probe. And I have set poolProperties.setJmxEnabled(true). However, neither of these monitoring tools let me see any information about Tomcat connection pool state. Perhaps these tools required that I JNDI to configure my database connections, and cannot monitor connection pools created via Java code? Unless I am using those two monitoring tools incorrectly (quite possible), and they really do offer a view of connection pool state, it seems that my only choice is to configure JMX monitoring, which seems non-trivial. (I am assuming that JMX will give me a view of connection pool state.) Or perhaps I should go the JNDI route (guessing that my two current monitoring apps can show connection pooling information for JNDI-created connection pools). However, since we create databases at runtime, I'm not sure that I would be able to create JNDI declarations for just-created databases on the fly. Ric -----Original Message----- From: Konstantin Kolinko [mailto:knst.koli...@gmail.com] Sent: Saturday, October 25, 2014 3:25 PM To: Tomcat Users List Subject: Re: Tomcat 7 JDBC Connection Pool - question about usage from Java code 2014-10-26 1:49 GMT+04:00 Ric Bernat <r...@brinydeep.net>: >> There is no such method to be called like on the above line. >> "DataSource(PoolConfiguration)" is a constructor. To call a constructor you >> need the keyword "new". > > My bad: I copied some code around and dropped the "new." You are quite right: > I am calling the constructor. > >> No. A constructor creates a new object. > > Of course, I realize a constructor creates a new object. However, I had > assumed that connections opened from two separate DataSource instances would > still coexist in the same Tomcat connection pool. > > To confirm: you are saying that one DataSource instance == one connection > pool, period. Right? With that code, yes. > (...) > > In the context of a JAX-RS application, this means I must persist my > DataSource instances in memory across web service calls (which is fine, I can > do that), and reuse them. Yes. > Otherwise I simply am not getting any connection pooling at all. Right? You get pooling for the duration of that single web service call. If open connection several times during that single call, all those connections will come from the same pool. BTW, http://en.wikipedia.org/wiki/Design_Patterns#Structural Best regards, Konstantin Kolinko --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org