Les programmes d'application Web Java dynamiques sont très souvent exécutés sous le contrôle d'un serveur d'application compatible J2EE qui fournit des services tels que le déploiement de programme, le contrôle des transactions et la persistance des données et des objets. Pour fournir des fonctionnalités de performance telles que le groupement des connexions et la mise en cache et les fonctionnalités des instructions, telles que les transactions globales, certains serveurs d'application encapsulent les objets JDBC tels que les connexions, les instructions et les ensembles de résultats. Par exemple, lorsqu'une application figurant sur un serveur d'application WebSphere Application Server demande une connexion à partir d'une source de données WebSphere, un objet de connexion WebSphere est renvoyé et contient une connexion JDBC sous-jacente. Cet objet de connexion renvoyé permet à WebSphere d'avoir connaissance de toutes les activités réalisées sur cette connexion, mais masque les éventuelles interfaces propriétaires sur la connexion. De même, un serveur WebLogic encapsule les connexions, les instructions et les objets d'ensemble de résultats.
Les applications d'optimisation client pureQuery ne sont pas affectées par des encapsuleurs. pureQuery Runtime se place entre les encapsuleurs du serveur d'application et le pilote JDBC. Dans la plupart des cas, une application activée avec l'optimisation client pureQuery peut être déplacée sans répéter le processus de capture SQL. Par exemple, lorsque vous déplacez une application d'un serveur WebLogic vers un serveur WebSphere Application Server, vous n'avez pas à répéter les étapes de l'optimisation client pureQuery de capture, de configuration et de liaison.