Prise en charge de la gérabilité du curseur pour les applications JDBC
La fonction de gérabilité du curseur peut réduire la surcharge de l'interaction JDBC avec votre base de données relationnelle, en aidant à améliorer les performances de l'application.
En activant la gérabilité du curseur, vous gardez disponible un ensemble de résultats dans les limites de transactions pour qu'il puisse être utilisé par plusieurs appels JDBC. Le paramètre de gérabilité déclenche un curseur de base de données pour garder actives les dernières lignes mises à jour, après la validation de la transaction qui a généré les nouvelles valeurs ou l'ensemble de résultats. Le curseur permet alors aux instructions d'utiliser l'ensemble de résultats dans une transaction ultérieure.
Définition de la gérabilité du curseur
- Spécifiez le paramètre ResultSet.HOLD_CURSORS_OVER_COMMIT lors de la création ou de la préparation d'une instruction à l'aide des méthodes createStatement, prepareStatement ou prepareCall.
- Appelez la méthode setHoldability sur l'objet Connection. La valeur de gérabilité du curseur que vous définissez à l'aide de cette méthode devient la valeur par défaut. Si vous spécifiez la gérabilité du curseur sur l'objet Statement, cette valeur écrase celle que vous avez spécifiée pour la connexion.
Vous ne pouvez pas spécifier la gérabilité du curseur sur une connexion partageable une fois la connexion référencée par un second indicateur. L'appel de la méthode de gérabilité à ce stade génère une exception. Si vous souhaitez définir l'opérabilité du curseur sur une connexion partageable, appelez la méthode avant que la connexion ne soit inscrite. Sinon une connexion partageable conserve la même valeur d'opérabilité qui a été appliquée lors de l'inscription précédente.
- Consultez la documentation de votre base de données pour savoir si votre produit prend en charge la gérabilité du curseur en tant que propriété de source de données. DB2, par exemple, répond au déclenchement de gérabilité si vous la définissez comme propriété personnalisée de source de données. Pour plus d'informations, voir la rubrique Paramètres des propriétés personnalisées.
Impact des comportements de connexion et transaction sur la gérabilité du curseur
- Lorsqu'une connexion est fermée, toutes les instructions et tous les ensembles de résultats sont fermés, même si vous avez défini la gérabilité du curseur.
- Lorsqu'une transaction est annulée, tous les ensembles de résultats sont fermés, même si vous avez défini la gérabilité du curseur.
- Lorsqu'une transaction locale est validée, les connexions partageables et non partageables peuvent générer un ensemble de résultats ouvert dans une limite de transactions.
- Lorsqu'une transaction globale est validée, les connexions non partageables peuvent générer un ensemble de résultats ouvert dans une limite de transactions. Pour les connexions partageables, les instructions et les ensembles de résultats sont fermés, même si vous avez défini la gérabilité du curseur ; la valeur de gérabilité n'a pas d'impact sur les connexions partageables qui font partie des transactions globales.
- A la fin de la portée d'une transaction locale, au niveau de la méthode ou de la session d'activité, toutes les instructions et tous les ensembles de résultats des connexions partageables sont fermés. Les instructions et les ensembles de résultats définis pour les connexions non partageables restent ouverts jusqu'à ce que la méthode fermée soit appelée sur la connexion.