Définition implicite des informations client

Si vous surveillez les informations client de votre base de données, vous disposez de deux possibilités pour transmettre les données client de WebSphere Application Server aux connexions à la base de données.

Vous pouvez choisir de transmettre explicitement les informations relatives aux connexions à la base de données en appelant une API propriétaire IBM®, setClientInformation(Properties), sur l'objet com.ibm.websphere.rsadapter.WSConnection dans le code de votre application. L'objet com.ibm.websphere.rsadapter.WSConnection se trouve dans le fichier racine_plug-in/com.ibm.ws.runtime.jar. Toutefois, dans certains cas, il est préférable que WebSphere Application Server gère la transmission des informations client aux connexions à la base de données. Cette méthode de définition des informations client est qualifiée d'implicite. Vous pouvez choisir la méthode implicite pour les raisons suivantes :
  • vous souhaitez que votre application reste indépendante des API propriétaires ou
  • votre application utilise la persistance gérée par conteneur (CMP), auquel cas vous ne pouvez pas utiliser l'API propriétaire pour définir les informations client sur les connexions à la base de données.

La fonction de trace de WebSphere Application Server permet de définir les informations client de façon implicite. Vous pouvez désigner l'un des deux groupes de trace spéciaux pour activer ou désactiver la transmission des informations client : Fonction de trace WAS.clientinfo ou Fonction de trace WAS.clientinfopluslogging.

Scénarios d'exécution possibles

  • Partage des connexions

    En cas de partage des connexions, WebSphere Application Server définit les informations client sur le premier descripteur de connexion acquis uniquement. Si le partage des connexions est activé et que deux ou plusieurs méthodes getConnection sont appelées (ce qui génère deux ou plusieurs descripteurs sur la même connexion), seul le premier appel getConnection entraîne la transmission des informations client à la base de données dorsale. Ce scénario n'est pas valable pour la transmission explicite des informations client ; dans ce cas, chaque méthode setClientinformation est envoyée vers la base de données, que les connexions soient partagées ou non.

  • Coexistence des procédures implicite et explicite
    Lorsque vous utilisez les procédures de transmission des informations client explicite et implicite en même temps, certaines données définies explicitement et implicitement sont combinées, mais en général, les premières prévalent. Par exemple, si l'application définit les informations comptables du client dans "myAccountingInfo", la chaîne accountingInfo finale transmise à la base de données dorsale ressemble à l'exemple de code suivant :
    000325_WSRdbManagedConnectionImpl@1234_myAccountingInfo: 
    000325 est l'ID de l'unité d'exécution et où WSRdbManagedConnectionImpl@1234 est l'instance de connexion WebSphere.
  • Réinitialisation des informations client

    Si le serveur d'applications est configuré de sorte qu'il transmette des informations client, il réinitialise les informations client lorsqu'une connexion est renvoyée au pool, mais uniquement si les mécanismes de trace WAS.clientinfo et WAS.clientinfopluslogging sont désactivés (WAS.clientinfo=all=disabled:WAS.clientinfopluslogging=all=disabled).

    Dans le cas d'une définition explicite, cependant, l'opération de réinitialisation s'effectue uniquement lorsque l'application génère setClientInformation(null) sur la connexion WSConnection.

Fonction de trace WAS.clientinfo

Le mécanisme implicite est désactivé par défaut. Vous pouvez activer ce mécanisme de façon dynamique, sans avoir à arrêter et démarrer votre serveur d'applications, ou de façon statique en définissant le groupe de trace WebSphere Application Server WAS.clientinfo=all=enabled.

[AIX Solaris HP-UX Linux Windows][IBM i]Les informations collectées et définies implicitement sur la connexion à la base de données sont le nom d'utilisateur, l'emplacement de l'utilisateur et le nom de l'application.

[z/OS]Les informations collectées et définies implicitement sur la connexion à la base de données sont l'ID de l'unité d'exécution, le nom d'utilisateur, l'emplacement de l'utilisateur et le nom de l'application.

Important : Le nom d'utilisateur et l'emplacement utilisateur peuvent être collectés implicitement et définis uniquement sur la connexion de base de données si vous activez Sécurité Java™ 2.
[z/OS]ID unité d'exécution
[z/OS]Il s'agit d'une valeur hexadécimale de 8 caractères qui identifie l'unité d'exécution Java contrôlant le traitement de la demande d'application dans WebSphere Application Server. Il s'affiche dans l'en-tête de la trace.
nom utilisateur
Il s'agit du nom de l'utilisateur à l'origine de la demande d'application. Cette option est collectée et transmise à la base de données dorsale (si elle est prise en charge). Ici, la collecte des informations s'effectue par l'appel de la méthode WSSecurityHelper.getFirstCaller.
emplacement de l'utilisateur
Il s'agit du nom de l'emplacement de l'utilisateur, au format cellule:noeud:serveur. Cette option est collectée et transmise à la base de données dorsale (si elle est appropriée). Ici, la collecte des informations s'effectue par l'appel de la méthode WSSecurityHelper.getFirstServer.
nom_application
Il s'agit du nom de l'application en cours d'exécution. Cette valeur est le résultat de la méthode getApplication à partir de l'objet Java EE Name. Elle est collectée quelle que soit la valeur du paramètre Sécurité globale.

Fonction de trace WAS.clientinfopluslogging

Lors du débogage des erreurs de la base de données, comme les interblocages, un ensemble d'informations peut faciliter la tâche de débogage. Ces informations sont généralement obtenues en activant une trace RRA (Relational Resource Adapter) WebSphere et une trace de conteneur d'EJB (Enterprise JavaBeans). Il existe toutefois certains cas où le délai constitue un aspect critique lors de la reproduction d'un incident donné. Le fait de disposer d'une trop grande quantité d'informations de trace peut modifier le comportement de l'application, modifier les délais par exemple, et il peut être difficile de reproduire l'erreur.

Pour cette raison, un nouveau groupe de trace qui permet de ne collecter qu'un ensemble minimal d'informations est fourni. Ce groupe de trace s'appelle WAS.clientinfopluslogging. Cette fonction définit les informations client de façon implicite sur la connexion, comme la fonction de trace WAS.clientinfo, et elle consigne et trace d'importantes activités d'application. Ces activités sont les suivantes :
  • les chaînes SQL qui sont exécutées (comme select userId from tabl1 where id=? for update),
  • le démarrage, la validation et l'annulation de transactions,
  • les appels EJB (tels que Create, Remove, findByPrimaryKey).

Icône indiquant le type de rubrique Rubrique de référence



Icône d'horodatage Dernière mise à jour: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rdat_impclientinfo
Nom du fichier : rdat_impclientinfo.html