Contains the connection pool parameters of a data source.
Configuration parameters for a data source's connection pool are specified using the connection pool parameters bean.
Security roles | The following roles have read, write, and invoke permission for all non-encrypted attributes and operations in this MBean:
|
||
Fully Qualified Interface Name | If you use the getMBeanInfo operation in MBeanTypeServiceMBean, supply the following value as this MBean's fully qualified interface name:
weblogic.j2ee.descriptor.wl.JDBCConnectionPoolParamsBean
|
||
Factory Methods | No factory methods. Instances of this MBean are created automatically. | ||
Access Points |
You can access this MBean from the following MBean attributes:
|
This section describes the following attributes:
The increment by which this JDBC connection pool's capacity is
expanded. In WebLogic Server 10.3.1 and higher releases, the
capacityIncrement
is no longer configurable and is set
to a value of 1.
When there are no more available physical connections to service requests, the connection pool will create this number of additional physical database connections and add them to the connection pool. The connection pool will ensure that it does not exceed the maximum number of physical connections.
Deprecated.
Privileges | Read/Write |
Type | int |
Default Value | 1 |
Minimum value | 1 |
Maximum value | 2147483647 |
The number of seconds between attempts to establish connections to the database.
If you do not set this value, data source creation fails if the database is unavailable. If set and if the database is unavailable when the data source is created, WebLogic Server will attempt to create connections in the pool again after the number of seconds you specify, and will continue to attempt to create the connections until it succeeds.
When set to 0
, connection retry is disabled.
Privileges | Read/Write |
Type | int |
Default Value | 0 |
Minimum value | 0 |
Maximum value | 2147483647 |
The maximum number of connections that may be harvested when the connection harvesting occurs. The range of valid values is 1 to MaxCapacity.
Privileges | Read/Write |
Type | int |
Default Value | 1 |
Minimum value | 1 |
Specifies the number of available connections (trigger value) used to determine when connection harvesting occurs.
Harvesting occurs when the number of available connections is below the trigger value for a connection pool.
The range of valid values is -1 to MaxCapacity
.
Default value is -1
.
Setting the value to -1
disables connection
harvesting.
Privileges | Read/Write |
Type | int |
Default Value | -1 |
Minimum value | -1 |
The class name of the connection labeling callback. This is
automatically passed to registerConnectionLabelingCallback when the
datasource is created. The class must implement
oracle.ucp.ConnectionLabelingCallback
.
Privileges | Read/Write |
Type | java.lang.String |
The number of seconds after which a call to reserve a connection from the connection pool will timeout.
When set to 0
, a call will never timeout.
When set to -1
, a call will timeout
immediately.
Privileges | Read/Write |
Type | int |
Default Value | 10 |
Minimum value | -1 |
Maximum value | 2147483647 |
Specifies the number of reconnect failures allowed before WebLogic Server disables a connection pool to minimize the delay in handling the connection request caused by a database failure. Zero means it is disabled.
Privileges | Read/Write |
Type | int |
Default Value | 2 |
Minimum value | 0 |
Specifies the number of test failures allowed before WebLogic Server closes all unused connections in a connection pool to minimize the delay caused by further database testing. Zero means it is disabled.
Privileges | Read/Write |
Type | int |
Default Value | 2 |
Minimum value | 0 |
Enables Set Client ID on connection for the data source. When an application requests a database connection, WebLogic Server sets a light-weight client ID on the database connection.
By default, it uses the credential mapping to map WebLogic Server user IDs to database user IDs. However, if use-database-credentials is set to true, then the credential mapping is not done and the ID is used directly as a database user ID.
It is currently supported for IBM DB2 driver and Oracle thin driver. Oracle recommends using proxy authentication instead of this feature.
Privileges | Read/Write |
Type | boolean |
Specifies the absolute name of the application class used to intercept method calls to the JDBC driver. The application specified must implement the weblogic.jdbc.extensions.DriverInterceptor interface.
Weblogic Server will invoke the preInvokeCallback(), postInvokeExceptionCallback(), and postInvokeCallback() methods of the registered application before and after invoking any method inside the JDBC driver. You can use this feature to profile JDBC driver usage and monitor:
Methods being executed
Any exceptions thrown
Time spent inside the driver executing methods
Privileges | Read/Write |
Type | java.lang.String |
Specifies a comma-separated list of error codes that are treated as fatal errors. These errors include deployment errors that cause a server to fail to boot and connection errors that prevent a connection from being put back in the connection pool.
This optional attribute is used to define fatal error codes,
that when specified as the exception code within a
SQLException
(retrieved by
sqlException.getErrorCode()
), indicate that a fatal
error has occurred and the connection is no longer usable. For
Oracle databases the following fatal error codes are predefined
within WLS and do not need to be placed in the configuration
file:
3113: "end-of-file on communication channel"
3114: "not connected to ORACLE"
1033: "ORACLE initialization or shutdown in progress"
1034: "ORACLE not available"
1089: "immediate shutdown in progress - no operations are permitted"
1090: "shutdown in progress - connection is not permitted"
17002: "I/O exception"
Privileges | Read/Write |
Type | java.lang.String |
The maximum number of connection requests that can concurrently block threads while waiting to reserve a connection from the data source's connection pool.
Privileges | Read/Write |
Type | int |
Default Value | 2147483647 |
Minimum value | 0 |
Maximum value | 2147483647 |
Enables identity-based-connection-pooling for the data source. When an application requests a database connection, WebLogic Server picks or creates a physical connection with requested DBMS identity based on a map of WebLogic user IDs and database IDs.
You must also specify the map of WebLogic Server user IDs to database user IDs (credential mapping).
Privileges | Read/Write |
Type | boolean |
Enables the data source to be shutdown even if connections obtained from the pool are still in use.
Privileges | Read/Write |
Type | boolean |
Default Value | true |
The number of inactive seconds on a reserved connection before WebLogic Server reclaims the connection and releases it back into the connection pool.
You can use the Inactive Connection Timeout feature to reclaim leaked connections - connections that were not explicitly closed by the application. Note that this feature is not intended to be used in place of properly closing connections.
When set to 0
, the feature is disabled.
Privileges | Read/Write |
Type | int |
Default Value | 0 |
Minimum value | 0 |
Maximum value | 2147483647 |
The number of physical connections to create when creating the connection pool in the data source. If unable to create this number of connections, creation of the data source will fail.
Privileges | Read/Write |
Type | int |
Default Value | 1 |
Minimum value | 0 |
Maximum value | 2147483647 |
SQL statement to execute that will initialize newly created physical database connections. Start the statement with SQL followed by a space.
If the Init SQL value begins with "SQL "
, then the
rest of the string following that leading token will be taken as a
literal SQL statement that will be used to initialize database
connections. If the Init SQL value does not begin with "SQL ", the
value will be treated as the name of a table and the following SQL
statement will be used to initialize connections:
"select count(*) from InitSQL"
The table InitSQL
must exist and be accessible to
the database user for the connection. Most database servers
optimize this SQL to avoid a table scan, but it is still a good
idea to set InitSQL
to the name of a table that is
known to have few rows, or even no rows.
Privileges | Read/Write |
Type | java.lang.String |
Specifies level of JDBC debugging for XA drivers, where larger values in the range provide more debugging information.
Privileges | Read/Write |
Type | int |
Default Value | 10 |
Minimum value | 0 |
Maximum value | 100 |
The number of seconds to delay before creating each physical database connection. This delay supports database servers that cannot handle multiple connection requests in rapid succession.
The delay takes place both during initial data source creation and during the lifetime of the data source whenever a physical database connection is created.
Privileges | Read/Write |
Type | int |
Default Value | 0 |
Minimum value | 0 |
Maximum value | 2147483647 |
The maximum number of physical connections that this connection pool can contain.
Privileges | Read/Write |
Type | int |
Default Value | 15 |
Minimum value | 1 |
Maximum value | 2147483647 |
The minimum number of physical connections that this connection pool can contain after it is initialized.
Default: InitialCapacity
Used only for connection pool shrinking calculations.
For compatibility, InitialCapacity
is used if
MinCapacity
is not configured.
Once a data source has gone through a suspend/resume, the larger
value of either MinCapacity
or
InitialCapacity
is used.
Privileges | Read/Write |
Type | int |
Default Value | 1 |
Minimum value | 0 |
Maximum value | 2147483647 |
Enables an option to improve performance by enabling execute threads to keep a pooled database connection even after the application closes the logical connection.
When enabled:
WebLogic Server pins a database connection from the connection
pool to an execution thread the first time an application uses the
thread to reserve a connection. When the application finishes using
the connection and calls connection.close()
, WebLogic
Server keeps the connection with the execute thread and does not
return it to the connection pool. When an application subsequently
requests a connection using the same execute thread, WebLogic
Server provides the connection already reserved by the thread.
There is no locking contention on the connection pool that occurs when multiple threads attempt to reserve a connection at the same time. There is no contention for threads that attempt to reserve the same connection from a limited number of database connections.
If an application concurrently reserves more than one connection from the connection pool using the same execute thread, WebLogic Server creates additional database connections and pins them to the thread.
The maximum capacity of the connection pool (maximum number of
database connections created in the connection pool) becomes the
number of execute threads used to request a connection multiplied
by the number of concurrent connections each thread reserves. This
may exceed the Maximum Capacity
specified for the
connection pool. You may need to consider this larger number of
connections in your system design and ensure that your database
allows for additional associated resources. If your system cannot
handle the additional resource requirements or if you see database
resource errors after enabling PinnedToThread
, Oracle
recommends not using PinnedToThread
. See Using Pinned-To-Thread
Property to Increase Performance.
Privileges | Read/Write |
Type | boolean |
The number of seconds that a JDBC connection needs to be held by an application before triggering a connection leak diagnostic profiling record.
When set to 0
, the timeout is disabled. This
attribute only applies when the connection leak diagnostic
profiling option is enabled.
Available Since | Release 12.2.1.0.0 |
Privileges | Read/Write |
Type | int |
Default Value | 0 |
Minimum value | 0 |
Maximum value | 2147483647 |
The number of seconds between when WebLogic Server harvests profile data.
When set to 0
, harvesting of data is disabled.
Privileges | Read/Write |
Type | int |
Default Value | 300 |
Minimum value | 0 |
Maximum value | 2147483647 |
Specifies that type of profile data to be collected for the JDBC subsystem.
You can specify combinations of the following profile types:
weblogic.jdbc.common.internal.JDBCConstants.PROFILE_TYPE_CONN_USAGE - Profile threads currently using connections from the pool of connections in the data source.
weblogic.jdbc.common.internal.JDBCConstants.PROFILE_TYPE_CONN_RESV_WAIT - Profile threads currently waiting to reserve a connection from the data source.
weblogic.jdbc.common.internal.JDBCConstants.PROFILE_TYPE_CONN_LEAK - Profile threads that have reserved a connection from the data source and the connection leaked (was not properly returned to the pool of connections).
weblogic.jdbc.common.internal.JDBCConstants.PROFILE_TYPE_CONN_RESV_FAIL - Profile threads that attempt to reserve a connection from the data source but fail.
weblogic.jdbc.common.internal.JDBCConstants.PROFILE_TYPE_STMT_CACHE_ENTRY - Profile prepared and callable statements added to the statement cache, and profile the threads that originated the cached statements.
weblogic.jdbc.common.internal.JDBCConstants.PROFILE_TYPE_STMT_USAGE - Profile threads currently executing SQL statements from the statement cache.
weblogic.jdbc.common.internal.JDBCConstants.PROFILE_TYPE_CONN_LAST_USAGE - Profile the previous thread that last used the connection. This information is useful when debugging problems with connections infected with pending transactions that cause subsequent XA operations on the connections to fail.
weblogic.jdbc.common.internal.JDBCConstants.PROFILE_TYPE_CONN_MT_USAGE - Profile threads that erroneously use a connection previously obtained by a different thread.
weblogic.jdbc.common.internal.JDBCConstants.PROFILE_TYPE_CONN_UNWRAP_USAGE - Profile threads that have obtained the JDBC delegate object by invoking unwrap or weblogic.common.wrapper.Wrapper.getVendorObj.
weblogic.jdbc.common.internal.JDBCConstants.PROFILE_TYPE_CONN_LOCALTX_LEAK - Profile threads that close JDBC connections that have an active local database transaction.
weblogic.jdbc.common.internal.JDBCConstants.PROFILE_TYPE_NONE - Disable profiling for the data source.
weblogic.jdbc.common.internal.JDBCConstants.PROFILE_TYPE_ALL - Enable all profile types for the data source.
Privileges | Read/Write |
Type | int |
Default Value | 0 |
Specifies whether a connection will be removed from the connection pool after the application uses the underlying vendor connection object.
If you disable removing infected connections, you must make sure that the database connection is suitable for reuse by other applications.
When set to true
(the default), the physical
connection is not returned to the connection pool after the
application closes the logical connection. Instead, the physical
connection is closed and recreated.
When set to false
, when the application closes the
logical connection, the physical connection is returned to the
connection pool and can be reused by the application or by another
application.
Privileges | Read/Write |
Type | boolean |
Default Value | true |
The number of seconds within a connection use that WebLogic Server trusts that the connection is still viable and will skip the connection test, either before delivering it to an application or during the periodic connection testing process.
This option is an optimization that minimizes the performance impact of connection testing, especially during heavy traffic.
Privileges | Read/Write |
Type | int |
Default Value | 10 |
Minimum value | 0 |
Maximum value | 2147483647 |
The number of seconds to wait before shrinking a connection pool that has incrementally increased to meet demand.
When set to 0
, shrinking is disabled.
Privileges | Read/Write |
Type | int |
Default Value | 900 |
Minimum value | 0 |
Maximum value | 2147483647 |
The number of prepared and callable statements stored in the cache. (This may increase server performance.)
WebLogic Server can reuse statements in the cache without reloading the statements, which can increase server performance. Each connection in the connection pool has its own cache of statements.
Setting the size of the statement cache to 0 turns off statement caching.
Privileges | Read/Write |
Type | int |
Default Value | 10 |
Minimum value | 0 |
Maximum value | 1024 |
The algorithm used for maintaining the prepared statements stored in the statement cache.
Options are:
LRU - when a new prepared or callable statement is used, the least recently used statement is replaced in the cache.
FIXED - the first fixed number of prepared and callable statements are cached.
Privileges | Read/Write |
Type | java.lang.String |
Default Value | LRU |
Legal Values |
|
The time after which a statement currently being executed will time out.
StatementTimeout relies on underlying JDBC driver support.
WebLogic Server passes the time specified to the JDBC driver using
the java.sql.Statement.setQueryTimeout()
method. If
your JDBC driver does not support this method, it may throw an
exception and the timeout value is ignored.
A value of -1
disables this feature.
A value of 0
means that statements will not time
out.
Privileges | Read/Write |
Type | int |
Default Value | -1 |
Minimum value | -1 |
Maximum value | 2147483647 |
Enables WebLogic Server to test a connection before giving it to a client. (Requires that you specify a Test Table Name.)
The test adds a small delay in serving the client's request for a connection from the pool, but ensures that the client receives a viable connection.
Privileges | Read/Write |
Type | boolean |
The number of seconds a WebLogic Server instance waits between attempts when testing unused connections. (Requires that you specify a Test Table Name.) Connections that fail the test are closed and reopened to re-establish a valid physical connection. If the test fails again, the connection is closed.
In the context of multi data sources, this attribute controls the frequency at which WebLogic Server checks the health of data sources it had previously marked as unhealthy.
When set to 0
, the feature is disabled.
Privileges | Read/Write |
Type | int |
Default Value | 120 |
Minimum value | 0 |
Maximum value | 2147483647 |
The name of the database table to use when testing physical database connections. This name is required when you specify a Test Frequency and enable Test Reserved Connections.
The default SQL code used to test a connection is select
count(*) from TestTableName
Most database servers optimize this SQL to avoid a table scan, but it is still a good idea to set the Test Table Name to the name of a table that is known to have few rows, or even no rows.
If the Test Table Name begins with SQL
, then the
rest of the string following that leading token will be taken as a
literal SQL statement that will be used to test connections instead
of the standard query. For example: SQL BEGIN; Null;
END;
For an Oracle database, you can reduce the overhead of
connection testing by setting Test Table Name to SQL
PINGDATABASE
which uses the pingDatabase()
method to test the Oracle connection. For any JDBC 4.0 database, it
is possible to use "SQL ISVALID" to use the isValid()
method on the connection.
Privileges | Read/Write |
Type | java.lang.String |
By default, SQL objects for CallableStatement
,
PreparedStatement
, ResultSet
,
Statement
, and DatabaseMetaData
are
wrapped with a WebLogic wrapper. Wrapping allows features like
debugging and connection usage to be performed by the server.
When false
, wrapping is disabled. This improves
performance, in some cases significantly, and allows for the
application to use the native driver objects directly. A value of
false
also disables data type wrapping.
Privileges | Read/Write |
Type | boolean |
Default Value | true |
By default, data type objects for Array, Blob, Clob, NClob, Ref, SQLXML, and Struct, plus ParameterMetaData and ResultSetMetaData objects are wrapped with a WebLogic wrapper. This allows for features like debugging and connection usage to be done by the server.
The wrapping can be turned off by setting this value to false. This improves performance, in some cases significantly, and allows for the application to use the native driver objects directly.
Privileges | Read/Write |
Type | boolean |
Default Value | true |
This section describes the following operations:
|
Return true if the given property has been explicitly set in this bean.
Operation Name | "isSet" |
Parameters | Object [] { propertyName }
where:
|
Signature | String [] {
"java.lang.String" } |
Returns |
boolean
|
Exceptions |
|
Restore the given property to its default value.
Operation Name | "unSet" |
Parameters | Object [] { propertyName }
where:
|
Signature | String [] {
"java.lang.String" } |
Returns |
void
|
Exceptions |
|