BEA WebLogic Server Tuning Guide
7
When the application server uses JDBC driver connection pooling facilities, it transparently uses those services in
response to application requests. The JDBC Connection pooling infrastructure avoids costly connection creation by
letting connections be requested and used by multiple applications.
Note: XAConnections work like PooledConnections. XAConnection is derived from the PooledConnection and thus it
supports the event listening model applicable to the PooledConnection objects. In addition, XAConnection objects
also provide the facilities for a Connection to participate in global
4
transactions.
2.4 WebLogic Server Connection Pooling
WebLogic Server implements Connection pooling differently than the JDBC model. Instead of relying on the JDBC
driver to provide connection events, it uses wrapper objects for each JDBC driver object. These wrapper objects
intercept method calls on the corresponding JDBC objects and take action as needed.
As shown above, in the JDBC connection model the application server caches the PooledConnection object and
gets a new logical Connection from the JDBC driver every time the application requests a Connection. WebLogic
Server, on the other hand, does not depend on notifications from the JDBC driver to manage connections. When a
Connection pool is created, based on the configuration for the connection pool, WebLogic Server acquires the
database connections from the driver and caches those connections. These connections are physical DB connections
when acquired from the JDBC driver implementing the java.sql.Driver interface.
4
A global transaction (also called a distributed transaction) has one or more transaction branches. Each branch represents a portion of the work in support of a
global transaction for which a transaction manager (TM) and set of participating resource managers (RMs) engage.
Application Server
JDBC Driver
JDBC
Application
getConnection
1
Pooled Connection
Object Cache
Ge
t a logical connection from
the pooled Connection
3
Return the logical connection
to caller
7
Driver notifies application
server so that the Pooled
Connection can be reused
for future connection
requests
6
Application uses the
connection to do DB
work
4
5
Application closes
the connection
8
Mark PooledConnection as
free for later reuse
Choose a free Pooled
Connection (create if
necessary)
2










