WebLogic Server 18.104.22.168 is now available. You can see the blog article announcing it at Oracle WebLogic Server 22.214.171.124 is Now Available.
One of the WLS datasource features that appeared quite a while ago but not mentioned much is the ability to define a callback that is called during connection initialization. The original intent of this callback was to provide a mechanism that is used with the Application Continuity (AC) feature. It allows for the application to ensure that the same initialization of the connection can be done when it is reserved and also later on if the connection is replayed. For the latter case, the original connection has some type of "recoverable" error and is closed, a new connection is reserved under the covers, and all of the operations that were done on the original connection are replayed on the new connection. The callback allows for the connection to be re-initialized with whatever state is needed by the application.
The concept of having a callback to allow for the application to initialize all connections without scattering this processing all over the application software wherever getConnection() is called is very useful, even without replay being involved. In fact, since the callback can be configured in the datasource descriptor, which I recommend, there is no change to the application except to write the callback itself.
Here’s the history of support for this feature, assuming that the connection initialization callback is configured.
WLS 10.3.6 – It is only called on an Active GridLink datasource when running with the replay driver (replay was only supported with AGL).
WLS 12.1.1, 12.1.2, and 12.1.3 – It is called if used with the replay driver and any datasource type (replay support was added to GENERIC datasources).
WLS 12.2.1 – It is called with any Oracle driver and any datasource type.
WLS 126.96.36.199 – It is called with any driver and any datasource type. Why limit the goodness to just the Oracle driver?
The callback can be configured in the application by registering it on the datasource in the Java code. You need to ensure that you only do this once per datasource. I think it’s much easier to register it in the datasource configuration.
Here’s a sample callback. Read the complete article here.
For regular information become a member in the WebLogic Partner Community please visit: http://www.oracle.com/partners/goto/wls-emea ( OPN account required). If you need support with your account please contact the Oracle Partner Business Center.