Well, you can also setup connection pools in the application container
in your servlet.xml, Tomcat's site does a nice job of explaining how to
do it.

Ignore the design patterns thing for a moment...

The real question is how often or concurrently would you be calling to
the same database under the same login/password?

If you are looking at only 3 or 5 concurrent users of connections or
only one use for a specific connection, then you are better doing what
you must already be doing which is creating connections on the fly.

If you do have lots of concurrent users logging in with the same
credentials, then you will see a major speed improvement with connection
pooling.  If anything, setup a pool for the connection that looks up the
connection information ;-)

-Jacob

| -----Original Message-----
| From: Howard Miller [mailto:[EMAIL PROTECTED]]
| Sent: Thursday, August 15, 2002 7:40 AM
| To: 'Struts Users Mailing List'
| Subject: RE: Connection pool question
| 
| Wow.... now I finally have to read "Design Patterns" as well!! - sorry
| Singletons and suchlike currently over my head - twenty or so years
| writing
| mostly assembler and Pascal!
| 
| Your PoolManager option sounds interesting, although I don't see the
| end-game. How will this handle connections to multiple arbitrary
databases
| which (essentially) are dynamic and defined at run-time.
| 
| Sorry.... I'm giving you a hard time with this. Its appreciated
though!!
| 
| Howard
| 
| -----Original Message-----
| From: Robert Taylor [mailto:[EMAIL PROTECTED]]
| Sent: 15 August 2002 13:26
| To: Struts Users Mailing List
| Subject: RE: Connection pool question
| 
| 
| Okay, but when you get a few cycles, take some time to learn about
JNDI
| and
| datasources. It's very worth while.
| 
| An alternative would be to create a single object which manages your
| connection pools; PoolManager. Give it some static methods that
allocate
| connections. Initialize it when your web app cranks up. It is then
| accessible to all objects in the same VM. If you had some contentions
| about
| having static methods, then make it a singleton. This allows you to
keep
| transaction management within your business tier and out of the web
tier.
| 
| Another alternative would be your solution #1, although this means
that
| most
| likely you will be managing your transactions directly in your Action
| classes :( .
| 
| Good luck,
| 
| robert
| 
| 
| 
| > -----Original Message-----
| > From: Howard Miller [mailto:[EMAIL PROTECTED]]
| > Sent: Thursday, August 15, 2002 8:04 AM
| > To: 'Struts Users Mailing List'
| > Subject: RE: Connection pool question
| >
| >
| > Thanks Robert,
| >
| > I must confess I don't get it. I was under the impression that
| > JNDI was just
| > an abstraction mechanism for looking up objects in a choice of
| > directories.
| >
| > The information about my databases is already stored in tables in
the
| > "central" database. Looking up the information is trivial, it is the
| best
| > way to actually connect to the databases that I am concerned about.
I.e,
| > once I have the connection object (or connection pool object)
| > where do I put
| > it?
| >
| > Also, I am currently rather negative about trying to pick up yet
another
| > Java technology when I already have too many half learnt
| > technologies on the
| > go!! (Brain melting!!)
| >
| > Regards,
| >
| > -----Original Message-----
| > From: Robert Taylor [mailto:[EMAIL PROTECTED]]
| > Sent: 15 August 2002 12:47
| > To: Struts Users Mailing List
| > Subject: RE: Connection pool question
| >
| >
| >
| > Standardization: All servlet containers that support the Servlet2.3
spec
| > must provide a way to look up data sources via JNDI. All or most
| > application
| > servers support general object location via JNDI.
| >
| > Simplicity: To look up a data source, all you have is the following
| code.
| > Context ctx = new InitialContext();
| > DataSource ds = (DataSource)ctx.lookup( "jdbc/<data source name>" );
| >
| > Flexibility: You can define your datasources in some file external
to
| your
| > code, such as a properties or xml file. This allows you to make
changes
| > without affecting your code.
| >
| > Decoupling: By accessing your datasources via JNDI lookup, your
business
| > objects don't depend on the web tier to provide access via the
| > application,
| > session, or request scope. This makes them reusable in other
| applications.
| >
| > Those are four reasons I can think of. There are probably more.
Craig,
| has
| > discussed the "best practices way" of using data sources in
| > Struts. You may
| > want to browser the archives.
| >
| > HTH,
| >
| > robert
| >
| > > -----Original Message-----
| > > From: Howard Miller [mailto:[EMAIL PROTECTED]]
| > > Sent: Thursday, August 15, 2002 7:33 AM
| > > To: 'Struts Users Mailing List'
| > > Subject: RE: Connection pool question
| > >
| > >
| > > Thanks,
| > >
| > > I don't know much about JNDI (apart from in general terms what
| > it is); why
| > > would doing it this way be a good thing?
| > >
| > > Howard
| > >
| > > >  -----Original Message-----
| > > > From:   Robert Taylor [mailto:[EMAIL PROTECTED]]
| > > > Sent:   15 August 2002 12:10
| > > > To:     Struts Users Mailing List
| > > > Subject:        RE: Connection pool question
| > > >
| > > > One solution might be to define several datasources in your
| > > > application/servlet container where each datasource corresponds
to
| its
| > > > respective database.
| > > > Then use JNDI to access the datasources from your application.
| > > >
| > > > robert
| > > >
| > > >          -----Original Message-----
| > > >         From:   Howard Miller [mailto:[EMAIL PROTECTED]]
| > > >         Sent:   Thursday, August 15, 2002 6:47 AM
| > > >         To:     '[EMAIL PROTECTED]'
| > > >         Subject:        Connection pool question
| > > >
| > > >         Hi,
| > > >
| > > >         Newbie, JDBC connection pool question:
| > > >
| > > >         My application uses a central control database. This is
ok,
| and I
| > > > can see how to use a connection pool for my application to
| > access this.
| > > >
| > > >         BUT... The application allows a user to recover data
from a
| range of
| > > > additional databases. That is the central database verified
| > > logins etc and
| > > > then lists a number of databases for the user to connect to.
| > > >
| > > >         I am very unsure how to handle this "sub -connection". I
have
| a
| > > > number of thoughts... all bad:
| > > >         1. Set up connection pools to ALL possible databases
(there
| are less
| > > > than 10), at the start in the application scope.
| > > >         2. Set up a dedicated connection in the session scope.
| > > >         3. Set up a dedicated connection in the request scope
(cgi
| style).
| > > >
| > > >         I don't like any of these answers. Anybody have
experience of
| this
| > > > sort of "dynamic database connection" or have any thoughts.
| > > >
| > > >         Regards, << File: ATT00047.txt >>  << File:
ATT203342.txt >>
| > >
| > > --
| > > To unsubscribe, e-mail:
| > > <mailto:[EMAIL PROTECTED]>
| > > For additional commands, e-mail:
| > > <mailto:[EMAIL PROTECTED]>
| > >
| >
| >
| > --
| > To unsubscribe, e-mail:
| > <mailto:[EMAIL PROTECTED]>
| > For additional commands, e-mail:
| > <mailto:[EMAIL PROTECTED]>
| >
| > --
| > To unsubscribe, e-mail:
| <mailto:[EMAIL PROTECTED]>
| For additional commands, e-mail:
| <mailto:[EMAIL PROTECTED]>
| 
| 
| --
| To unsubscribe, e-mail:
| <mailto:[EMAIL PROTECTED]>
| For additional commands, e-mail:
| <mailto:[EMAIL PROTECTED]>
| 
| --
| To unsubscribe, e-mail:   <mailto:struts-user-
| [EMAIL PROTECTED]>
| For additional commands, e-mail: <mailto:struts-user-
| [EMAIL PROTECTED]>
| 
| ---
| Incoming mail is certified Virus Free.
| Checked by AVG anti-virus system (http://www.grisoft.com).
| Version: 6.0.381 / Virus Database: 214 - Release Date: 8/2/2002
| 

---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.381 / Virus Database: 214 - Release Date: 8/2/2002
 


--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to