• The Capacity Increment Attribute: WebLogic first uses the existing connections available in the pool when a connection request is issued. If there is no match, this parameter takes care of creating a new one.
• The MinCapacity Attribute: The MinCapacity attribute sets the minimum number of physical connections that a connection pool can contain after it’s initialized. The initial capacity that previously handled both the initial and minimum capacity for the pool has been split into two attributes:
— MinCapacity defaults to InitialCapacity if not set; InitialCapacity continues to default to 1.
— MinCapacity is only used for shrinking calculations. If you don’t set MinCapacity, InitialCapacity is used.
• Define Fatal Error Codes: To indicate that the backend database is unavailable or unreachable on a connection, you can work with fatal error. The connection will be marked as invalid and taken out of the pool. The errors may include deployment errors that cause a server boot to fail, and connection errors.You can specify this with an exception code within a SQLException (by sqlException.getErrorCode()), which indicates that a fatal error has occurred and the connection is no longer healthy and is to be removed from the connection pool. For Oracle databases, the following fatal error codes are already available within WLS and you don’t have to configure them:
— 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
• Data Source Profile Logging: In previous versions, data source events were recorded as WLDF events. For better usability and performance, WebLogic Server now uses a data source profile log to store events. The profile log has log-rotation—the ability to configure, rotate, and retire old data.
You can see where to set your data source logging profile in the following screenshot:
• Application-Scoped Drivers: It is now possible to include a database driver in the EAR/WAR file that contains an application-scoped data source. You do not have to update the classpath of the manifest file to include the driver location.
Oracle BI Server Support: Just select Oracle BI Server as Database Type when creating a new generic data source to interoperate with the Oracle BI Server.
• Keep Connection After Global Transaction: This new feature enables WebLogic Server to keep a physical connection associated with a logical connection when committing or rolling back a global transaction. Defined as KeepConnAfterGlobalTx in JDBCXAParamsBean.
• Session Affinity Policy: Web applications where a user session has backto-back OLTP should have better performance. In some cases, repeated operations against the same data sets are being processed at the same RAC instance. A GridLink data source uses the session affinity policy to improve performance by directing the database operations of a servlet session to the same RAC instance in an RAC cluster. A GridLink data source monitors RAC load balancing advisories (LBAs) using the AffEnabled attribute to determine if RAC affinity is enabled for an RAC cluster. The first connection request is load balanced using Runtime Connection Load-Balancing (RCLB) and is assigned an Affinity context. All the next connection requests will be transferred to the same Oracle RAC instance using the Affinity context of the first connection until the session ends or the transaction completes.
• Connection Labeling: Applications often initialize or re-initialize a connection, but with Connection Labeling, an application requests a connection with the desired label from the connection pool. By associating particular labels with particular connection states, an application can retrieve an already initialized connection from the pool without re-initialization. The oracle.ucp.jdbc.LabelableConnection interface is used to apply and remove connection labels, as well as retrieve labels that have been set on a connection. The oracle.ucp.ConnectionLabelingCallback interface will act when a labeled connection is requested but there are no connections in the pool that matche already existing labeled connections.
• New Debug Scopes: Some new debug options are available like:
— weblogic.jdbc.rac.DebugJDBCUCP—low-level UCP debugging.
This includes both required and optional callback interfaces that are used to implement connection pool features, like the ConnectionAffinityCallback interface. This is used to create a callback that enables or disables connection affinity and can also be used to customize connection affinity behavior. You can set UCP debugging directly using:
oracle.ucp.level = FINEST;
oracle.ucp.jdbc.PoolDataSource = WARNING;
— weblogic.jdbc.rac.DebugJDBCREPLAY—REPLAY debugging.
— weblogic.jdbc.transaction.DebugJTAJDBC—transaction debugging. To get this level of tracing for Oracle, you need to use ojdbc6_g.jar instead of ojdbc6.jar.
— weblogic.jdbc.rac.DebugJDBCONS—low-level ONS debugging.
A GridLink data source provides connectivity between WebLogic Server and an Oracle Database service, which may include multiple Oracle RAC clusters. It uses the Oracle Notification Service (ONS) to adaptively respond to state changes in an Oracle RAC instance, so with this sort of debugging you can identify problems with the ONS Client.
— weblogic.jdbc.rac.DebugJDBCRAC—RAC debugging.