I have a question about ways to implement connection pooling.

Our environment:    Hardware:  RS/6000 SP2.
               OS:  AIX 4.3.
               DB:  DB2 UDB EEE 7.2

We have developed an application system with the following high-level
architecture:

a)  Our customer contacts what I'll call our gateway system and indicates
that it wants to query a database.
b)  Our gateway system sends the request to a daemon process that is
listening for it on the database machine.
c)  On the database machine, when the listener daemon gets the request, it
spawns a child process that opens a DB2 database connection, executes the
query, and then returns the data.

The listener daemon and the child process were both written in C using
embedded SQL.

Since that child process is going to be spawned every time the customer
wants to query the database, and since the customer has indicated that
eventually they may hit a peak rate of 50 transactions per second, we want
to enable connection pooling so that the overhead of opening a new database
connection does not have to be incurred every time a new transaction is
started.

DB2 is supposed to support connection pooling in a number of ways:

1.  The DB2 Call Level Interface ("CLI") is one method.  It is related to,
but distinct from, ODBC.  We thought that this would be the best approach,
but we had a conversation with someone at IBM in Toronto who told him that
the connection pool one creates with CLI can only be used by the same
process that creates it.  That doesn't work with our architecture, since
each new child that gets spawned will have a new AIX process ID.

2.  ODBC.  As of ODBC 3.0, it has supported connection pooling.  But a
complete ODBC as such is not provided with DB2 on AIX.  The ODBC Data
Source Administrator in MS Windows platforms allows connection pooling to
be turned on.  There is no corresponding data source administrator function
in DB2 for AIX that I am aware of, although there may be third parties that
supply the equivalent of an ODBC data source administrator that would run
on AIX.  Does anyone know?

3.  Any of several transaction processing ("TP") monitors, such as Tuxedo,
Microsoft Transaction Server ("MTS"), CICS, Encina, etc.  (This would be a
more expensive solution, since we would have to purchase the TP monitor.
Also, I don't really want to interpose another layer between the
application and the database.)

First of all, can anyone confirm that CLI connection pooling is indeed
limited to the process that initiates it?  (If so, that doesn't seem to be
much of a benefit!)  If you have some evidence to the contrary (like maybe
a short code example?), I'd be grateful if I could see it.

Secondly, what options are available using ODBC on AIX?  And what vendors,
if any, offer a solution for what we are trying to do?

Other comments?

Thanks in advance!

Steve Westfall
Equifax, Inc.
Lombard, Illinois





This message contains information from Equifax, Inc. which may be
confidential and privileged.  If you are not an intended recipient, please
refrain from any disclosure, copying, distribution or use of this
information and note that such actions are prohibited.  If you have
received this transmission in error, please notify by e-mail
[EMAIL PROTECTED]


=====
To unsubscribe, send 'unsubscribe' to [EMAIL PROTECTED]
For other info (and scripts), see http://people.mn.mediaone.net/scottrmcleod

Reply via email to