Dynamic Web-based Java™ application programs are in many cases executed under the control of a J2EE-compliant application server that provides services such as program deployment, transaction control, and data and object persistence. To provide performance features such as connection pooling and statement caching and functionality, such as global transactions, some application servers wrap JDBC objects such as connections, statements, and result sets. For example, when an application in a WebSphere® Application Server requests a connection from a WebSphere data source, a WebSphere connection object is returned that contains an underlying JDBC connection. This returned connection object allows WebSphere to be aware of all activity performed on that connection, but hides any proprietary interfaces on the connection. Similarly, a WebLogic server wraps connections, statements, and result set objects.
pureQuery client optimization applications are not affected by the different wrappers. pureQuery Runtime places itself between the application server wrappers and the JDBC driver. In most cases, an application that is enabled with pureQuery client can be moved without repeating the SQL capture process. For example, when you move an application from a WebLogic server to a WebSphere Application Server, you do not need to repeat the pureQuery client optimization steps of capture, configure, and bind.